vector的resize
时间: 2024-04-05 11:27:59 浏览: 20
vector的resize函数用于改变vector容器的大小。当将vector的大小增加时,新元素会被添加到容器的末尾;当将vector的大小减小时,容器的最后几个元素会被删除[^1]。
以下是一个使用resize函数的示例代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v1(5, 1); // 创建一个值为1的大小为5的vector容器v1
v1.resize(3); // 将v1的大小改为3,最后两个元素会被删除
for(int i=0; i<v1.size(); i++) {
cout << v1[i] << " ";
}
// 输出:1 1 1
return 0;
}
```
在上述示例中,我们首先创建了一个大小为5且初始值为1的vector容器v1。然后,我们使用resize函数将v1的大小改为3,这导致最后两个元素被删除。最后,我们使用循环遍历v1并输出其元素的值。
相关问题
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 的大小。
相关推荐
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![h](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)