C++ Vector 库 - assign() 函数
描述
C++ 函数 std::vector::assign() 通过替换旧值为向量元素分配新值。 如有必要,它会修改矢量的大小。
如果发生内存分配,则分配由内部分配器分配。
声明
以下是 std::vector::assign() 函数形式 std::vector 头的声明。
C++98
template <class InputIterator> void assign(InputIterator first, InputIterator last);
C++11
template <class InputIterator> wvoid assign (InputIterator first, InputIterator last);
参数
first − 输入迭代器到范围内的初始位置。
last − 输入迭代器到范围内的最终位置。
返回值
None
异常
此成员函数从不抛出异常。 如果 (first, last) 的值不是有效索引,则行为未定义。
时间复杂度
线性,即 O(n)
示例
以下示例显示了 std::vector::assign() 函数的用法。
#include <iostream>
#include <vector>
using namespace std;
int main(void) {
vector<int> v(5, 100);
cout << "Initial vector contents" << endl;
for (int i = 0; i < v.size(); ++i)
cout << v[i] << endl;
cout << endl;
cout << "Modified vector contents" << endl;
v.assign(v.begin(), v.begin() + 2);
for (int i = 0; i < v.size(); ++i)
cout << v[i] << endl;
return 0;
}
让我们编译并运行上面的程序,这将产生以下结果 −
Initial vector contents 100 100 100 100 100 Modified vector contents 100 100

