std vector resize
时间: 2024-11-23 13:11:36 浏览: 4
`std::vector` 是 C++ 标准库中的动态数组容器,它允许你在运行时动态调整大小。`resize()` 函数是 `std::vector` 的成员函数,用于改变向量的容量,即元素的数量。它可以接受两个参数:
1. 新的大小(size_t new_size):这是你希望向量包含的新元素数。如果新大小大于当前容量,会自动分配更多的内存;如果新大小小于当前容量,多余的空间会被删除。
2. [可选] 指定值 (optional):如果你提供了一个额外的参数,那么在调整大小时,向量的所有新元素将被这个值初始化。如果不提供,或者提供的值是 `std::initializer_list` 或者 `T&&` 类型(C++17以后),则使用默认构造函数初始化新元素。
示例代码如下:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec;
// 初始化一个空向量
vec.resize(5); // 向量现在有5个未初始化的元素
// 扩容并填充所有新元素为0
vec.resize(10, 0);
for (const auto& elem : vec) {
std::cout << elem << " "; // 输出0到9
}
std::cout << std::endl;
// 缩小并向新元素赋值为某个特定值
vec.resize(3, 42);
for (size_t i = 0; i < vec.size(); ++i) {
std::cout << vec[i] << " "; // 输出42, 42, 42
}
std::cout << std::endl;
return 0;
}
```
阅读全文