vector resize
时间: 2023-08-29 08:05:37 浏览: 43
`vector` 的 `resize` 函数用于改变容器的大小,它有两种形式:
```cpp
void resize(size_type count);
void resize(size_type count, const value_type& value);
```
第一种形式将容器的大小改为 `count`,如果 `count` 大于当前容器的大小,则会在末尾添加默认值构造的元素,否则会删除末尾多余的元素。例如,将一个大小为 5 的 `vector<int>` 执行 `v.resize(3)` 后,它的大小将变为 3,其中元素 3、4 将被删除。
第二种形式将容器的大小改为 `count`,并用 `value` 初始化新增的元素。例如,将一个大小为 3 的 `vector<int>` 执行 `v.resize(5, 0)` 后,它的大小将变为 5,其中新增的元素将被初始化为 0。
需要注意的是,改变容器大小可能会导致迭代器失效,因此在使用迭代器时应特别小心。
相关问题
vector resize
vector resize()函数是用来改变向量大小的。它接受一个整数参数n,表示希望将向量调整为的大小。当n小于当前向量大小时,resize()会截断向量,只保留前n个元素。当n大于当前向量大小时,resize()会在向量的末尾插入默认构造的元素,将向量扩展到大小为n。如果向量大小已经等于n,则resize()不会做任何操作。下面是一个示例:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
std::cout << "Before resize: ";
for (const auto& num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
numbers.resize(3);
std::cout << "After resize to 3: ";
for (const auto& num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
numbers.resize(7);
std::cout << "After resize to 7: ";
for (const auto& num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果:
```
Before resize: 1 2 3 4 5
After resize to 3: 1 2 3
After resize to 7: 1 2 3 0 0 0 0
```
在示例中,开始时向量的大小为5。首先,我们将其调整为3,向量被截断为前3个元素。然后,我们将其调整为7,向量在末尾插入4个默认构造的元素,将其扩展到7个元素的大小。
c vector resize
vector resize 和 reserve 是 STL 中 vector 的两个常用函数。
resize 函数是用来改变 vector 的大小的,如果新的大小大于原来的大小,那么会在 vector 后面增加一些元素,而这些新增的元素的值是未定义的。
reserve 函数是用来预留 vector 的容量的,如果 reserve 的参数大于 vector 的当前容量,那么 vector 的容量会增加到参数值,但是 vector 的大小并不会发生改变。
两个函数有什么区别? resize 会改变 vector 的大小,而 reserve 只是预留容量,不改变 vector 的大小。
相关推荐
![h](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)