📜  vector :: C++ STL中的Assign()(1)

📅  最后修改于: 2023-12-03 15:35:35.096000             🧑  作者: Mango

vector::Assign() in C++ STL

在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函数,可帮助您快速重新分配现有的向量,减少了创建新容器的需要。它还可以使用迭代器动态地将元素添加到现有向量中。