c++如何修改vector容器的大小
时间: 2024-10-15 08:17:26 浏览: 30
C++中vector容器使用详细说明
在C++中,可以使用`std::vector`容器的成员函数来修改其大小。以下是几种常见的方法:
1. **`resize()`** 函数:这个函数用于改变向量的大小,如果新大小大于当前容量,则向量自动分配新的内存;如果新大小小于当前容量,多余的元素会被删除(默认的行为),也可以选择保留它们(通过设置第二个参数为true)。
```cpp
std::vector<int> vec;
// 修改为5个元素
vec.resize(5);
// 或者删除多余元素并保持5个元素
vec.resize(5, true);
// 如果你想增加元素,可以指定增长值
vec.resize(vec.size() + n);
```
2. **`push_back()`** 和 `pop_back()`**:`push_back` 添加元素到向量末尾并自动调整大小,而 `pop_back` 则移除最后一个元素,如果这时向量变为空则会自动减小容量。你可以根据需要频繁地使用这两个操作来动态调整大小。
```cpp
vec.push_back(value); // 添加元素
if (vec.empty()) {
vec.pop_back(); // 清空后可能缩小
}
```
3. **`reserve()`**:预先申请空间可以防止不必要的动态内存分配和销毁,提高效率。但是这不会直接影响向量的大小,只是改变了向量内部存储数据的空间。
```cpp
vec.reserve(new_capacity); // 预先分配足够存储n个元素的空间
```
阅读全文