C++将 nums 向量的内容替换为 newArr 容器中的元素
详细解释
-
nums
: 这是一个std::vector
类型的对象。我们想要修改这个向量的内容。 -
assign
方法:std::vector
类的assign
方法用于给向量分配新的内容。调用这个方法会清除当前向量中的所有元素,并用新提供的元素替换它们。 -
newArr.begin()
和newArr.end()
: 这些是迭代器,分别指向newArr
容器的起始位置和结束位置。newArr
可以是另一个std::vector
,或者任何其他支持迭代器的容器(如std::array
,std::list
等)。
效果
执行 nums.assign(newArr.begin(), newArr.end());
后:
nums
中原有的所有元素都会被移除。nums
会被赋予newArr
中的所有元素,顺序与newArr
中相同。- 如果
newArr
为空,nums
也会变为空。
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums = {1, 2, 3, 4};
std::vector<int> newArr = {5, 6, 7};
// 使用 assign 方法替换 nums 的内容
nums.assign(newArr.begin(), newArr.end());
// 输出 nums 的新内容
for (int num : nums) {
std::cout << num << " ";
}
// 输出: 5 6 7
return 0;
}
使用场景
- 重置向量内容: 当你需要将一个向量的内容完全替换为另一个容器的内容时,
assign
方法非常有用。 - 从其他容器复制元素: 如果需要从其他类型的容器(如数组或列表)复制元素到一个向量中,
assign
提供了一种简便的方法。 - 清空向量: 通过传递空的迭代器范围(例如,一个空容器的
begin()
和end()
),可以使用assign
方法清空一个向量。