C++ vector assign() 函数

定义和用法

assign() 函数会清空向量的内容,然后使用数据填充它。

有两种方式可以指定应该用什么数据填充向量:

  • 指定从另一个数据结构中复制的数据范围。
  • 指定一个值以及重复该值的次数。

在第一种情况下,数据范围由两个迭代器指定,它们指示范围的开始和结束。复制的数据将包含从开始位置到结束位置之前的所有元素,但不包括结束位置本身。

在第二种情况下,一个参数指定元素的数量,另一个参数指定这些元素的值。

实例

例子 1

从一个向量复制内容到另一个向量:

vector<string> cars = {"Volvo", "BMW", "Ford", "Tesla"};
vector<string> carbrands;

carbrands.assign(cars.begin(), cars.end());

for(string brand : carbrands) {
  cout << brand << "\n";
}

亲自试一试

例子 2

用值填充向量:

vector<string> myVector;

myVector.assign(4, "Placeholder");

for (string item : myVector) {
  cout << item << "\n";
}

亲自试一试

语法

以下之一:

vector.assign(iterator start, iterator end);
vector.assign(size_t amount, <type> value);

size_t 数据类型是非负整数。<type> 指的是向量包含的数据类型。

参数

参数 描述
start 必需。指向要复制的数据范围开始位置的迭代器。
end

必需。指向要复制的数据范围结束位置的迭代器。

复制到此位置之前的元素,但不复制此位置的元素。

amount 必需。指定要放入向量的元素数量的整数。
value 必需。要写入向量每个元素的值。

相关页面

教程:C++ 向量

教程:C++ 迭代器