vector中的resize和reserve
在C++中,vector是一个动态数组容器,可以在运行时动态调整大小。resize()和reserve()是vector类提供的两个不同的成员函数,用于调整容器的大小和预留容量。
1. resize(): resize()函数用于调整vector的大小。它接受一个参数,表示要调整的大小。当调整为更大的大小时,新的元素会被默认初始化;当调整为较小的大小时,多余的元素会被删除。示例代码如下:
```cpp
resize函数c++std::vector<int> nums;
size(5); // 将vector调整为大小为5,元素默认初始化为0
std::cout << nums.size() << std::endl; // 输出:5
size(3); // 将vector调整为大小为3,多余的元素被删除
std::cout << nums.size() << std::endl; // 输出:3
```
2. reserve(): reserve()函数用于预留vector的容量,但不会改变vector的大小。它接受一个参数,表示要预留的容量大小。如果预留的容量小于当前容器的大小,则不会有任何效果。示例代码如下:
```cpp
std::vector<int> nums;
std::cout << nums.capacity() << std::endl; // 输出:0
serve(10); // 预留容量为10
std::cout << nums.capacity() << std::endl; // 输出:10
nums.push_back(1);
nums.push_back(2);
nums.push_back(3);
std::cout << nums.size() << std::endl; // 输出:3,vector的大小并未改变
```
值得注意的是,当vector的大小超过其容量时,容器会自动调整其容量以适应新的元素。当调整容量时,可能会发生动态内存分配和复制元素的操作,因此过于频繁的调整大小和预留容量可能会影响性能。因此,在使用vector时,根据实际需要合理使用resize()和reserve()函数。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。