vector assign用法
时间: 2023-10-16 12:20:42 浏览: 183
`vector`的`assign`函数用于将新的元素替换容器中的旧元素。它有多种用法,取决于参数的类型。
1. 使用重复的值替换容器中的所有元素:
```cpp
void assign(size_type count, const T& value);
```
示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5};
// 用100替换所有元素
nums.assign(5, 100);
for (const auto& num : nums) {
std::cout << num << " ";
}
return 0;
}
```
输出结果:
```
100 100 100 100 100
```
2. 使用迭代器指定的范围内的值替换容器中的元素:
```cpp
template <class InputIterator>
void assign(InputIterator first, InputIterator last);
```
示例代码:
```cpp
#include <iostream>
#include <vector>
#include <array>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5};
std::array<int, 3> arr = {10, 20, 30};
// 用arr数组的值替换nums中的前3个元素
nums.assign(arr.begin(), arr.end());
for (const auto& num : nums) {
std::cout << num << " ";
}
return 0;
}
```
输出结果:
```
10 20 30 4 5
```
3. 使用初始化列表替换容器中的元素:
```cpp
void assign(std::initializer_list<T> ilist);
```
示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5};
// 使用初始化列表 {10, 20, 30} 替换所有元素
nums.assign({10, 20, 30});
for (const auto& num : nums) {
std::cout << num << " ";
}
return 0;
}
```
输出结果:
```
10 20 30
```
通过使用`assign`函数,可以轻松地替换`vector`中的元素。希望这个回答对你有所帮助!如果你对其他内容还有疑问,可以继续问我。
阅读全文