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