在C++中,nums.assign()
的用法通常与标准模板库(STL)中的容器类相关,如 std::vector
、std::list
、std::deque
等。这些容器类提供了 assign()
成员函数,用于分配新的内容给容器,替换其当前内容。
1.分配指定数量的重复值:
std::vector<int> nums;
nums.assign(5, 10); // nums 现在包含 5 个元素,每个元素的值都是 10
2.分配另一个容器的所有元素:
std::vector<int> other = {1, 2, 3, 4, 5};
nums.assign(other.begin(), other.end()); // nums 现在包含 other 的所有元素
3.分配一个初始化列表(C++11及以后):
nums.assign({6, 7, 8, 9, 10}); // nums 现在包含这个初始化列表的元素
注意事项
- 使用
assign()
方法会替换容器中的所有现有元素。 - 如果
assign()
分配的元素数量与当前容器的大小不同,容器的大小会相应调整。 - 如果分配的元素类型与容器当前存储的类型不匹配,将导致编译错误。
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums;
// 初始为空
std::cout << "初始时,nums 是空的。\n";
// 分配 5 个值为 10 的元素
nums.assign(5, 10);
std::cout << "分配后,nums 包含: ";
for (int num : nums) {
std::cout << num << ' ';
}
std::cout << '\n';
// 分配另一个容器的所有元素
std::vector<int> other = {1, 2, 3, 4, 5};
nums.assign(other.begin(), other.end());
std::cout << "再次分配后,nums 包含: ";
for (int num : nums) {
std::cout << num << ' ';
}
std::cout << '\n';
return 0;
}
初始时,nums 是空的。 分配后,nums 包含: 10 10 10 10 10 再次分配后,nums 包含: 1 2 3 4 5