📅  最后修改于: 2023-12-03 15:35:35.096000             🧑  作者: Mango
在C++ STL中,vector::assign()
是一个成员函数,可用于用新值替换现有值来重新分配容器。它可以帮助程序员在不使用新容器的情况下,快速修改现有容器。
以下是vector::assign()
的语法:
vector::assign(n, value);
vector::assign(iterator begin, iterator end);
vector::assign()
接受两个参数:
n
:新分配的元素数量value
:可选参数,要用作新元素的值或者:
begin
:迭代器,指向要插入新元素的起始位置end
:迭代器,指向要插入新元素的结束位置以下是vector::assign()
的例子:
#include <iostream>
#include <vector>
int main() {
// 创建一个向量
std::vector<int> v{1, 2, 3, 4, 5};
// 使用新值重新分配容器
v.assign(3, 0);
// 输出分配后的容器
for (auto i : v) {
std::cout << i << " ";
}
std::cout << std::endl;
// 使用迭代器重新分配容器
std::vector<int> temp{11, 22, 33, 44, 55};
v.assign(temp.begin()+1, temp.end()-1);
// 输出分配后的容器
for (auto i : v) {
std::cout << i << " ";
}
std::cout << std::endl;
}
此程序使用了两种不同的assign()
。第一种向向量中的前三个元素分配了值0
。第二种使用迭代器从temp
向量中的第二个元素分配了新值。
输出:
0 0 0
22 33 44
vector::assign()
是一个有用的STL函数,可帮助您快速重新分配现有的向量,减少了创建新容器的需要。它还可以使用迭代器动态地将元素添加到现有向量中。