vector::assign
描述 (Description)
C ++函数std::vector::assign()通过替换旧元素为向量元素赋值。 如有必要,它会修改向量的大小。
如果发生内存分配,则分配由内部分配器分配。
声明 (Declaration)
以下是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);
参数 (Parameters)
first - 将迭代器输入到范围内的初始位置。
last - 将迭代器输入到范围内的最终位置。
返回值
没有
异常 (Exceptions)
该成员函数从不抛出异常。 如果(first,last)的值不是有效索引,则行为未定义。
时间复杂
线性即O(n)
例子 (Example)
以下示例显示了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