stl中vector。resize()实现
时间: 2024-09-23 08:00:46 浏览: 29
C++的Vector实现.zip
5星 · 资源好评率100%
STL(Standard Template Library)中的`std::vector`是一个动态数组,它的`resize()`函数用于改变向量的大小。该函数有两个重载形式:
1. `void resize(size_type new_size)`:这个版本只指定新的大小,不会改变元素的内容。如果新大小大于当前大小,插入默认构造的元素;如果新大小小于当前大小,删除多余的元素。
```cpp
std::vector<int> vec;
vec.resize(5); // 初始为空,现在有5个默认构造的int
```
2. `void resize(size_type new_size, const T& value)`:除了指定新的大小,还提供了一个可选的初始值,所有新插入的元素将使用这个值初始化。
```cpp
std::vector<int> vec(3, 10); // 初始填充了三个10
vec.resize(6, 20); // 现在有6个元素,从索引3开始都是20
```
在调用`resize()`后,向量的容量(即底层内存分配的大小)会被调整,而不会立即影响到已有的元素。如果新大小导致实际内存不足,`resize()`可能会抛出异常。
阅读全文