std::vector 如何进行resize
时间: 2024-04-08 18:26:20 浏览: 26
std::vector是C++标准库中的一个容器,用于存储动态大小的元素序列。resize()函数是std::vector提供的一个成员函数,用于改变vector的大小。
resize()函数有两种形式:
1. resize(n):将vector的大小调整为n,如果n小于当前大小,则删除多余的元素;如果n大于当前大小,则在末尾添加默认构造的元素。
2. resize(n, value):将vector的大小调整为n,如果n小于当前大小,则删除多余的元素;如果n大于当前大小,则在末尾添加value值的元素。
例如,假设有一个vector v,初始大小为3:
```
std::vector<int> v = {1, 2, 3};
```
使用resize()函数可以改变v的大小:
```
v.resize(5); // 调整大小为5,添加两个默认构造的元素
```
此时,v的内容变为{1, 2, 3, 0, 0}。
另外,如果需要缩小vector的大小,可以使用resize()函数的形式一:
```
v.resize(2); // 缩小大小为2,删除多余的元素
```
此时,v的内容变为{1, 2}。
相关问题
std::vector resize
引用中的代码展示了std::vector的resize函数的用法。resize函数用于改变vector的大小。在这个例子中,vector先被resize为5个元素,然后再resize为8个元素(新添加的元素被初始化为100),最后又resize为12个元素。
引用中的代码展示了如何打印出vector的内容。通过使用for循环遍历vector的每个元素,并使用std::cout打印出来。
引用给出了resize函数的两种重载形式。第一种形式是只指定新的大小n,此时vector中的元素数量会变为n,多余的元素会被删除。第二种形式是同时指定新的大小n和新元素的值val,此时vector中的元素数量会变为n,多余的元素会被添加,并设置为val。
所以,std::vector的resize函数可以用来改变vector的大小,你可以选择只指定新的大小,或者同时指定新的大小和新元素的值。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [vector :: resize](https://blog.csdn.net/qq_42826610/article/details/108118418)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [C++ std::vector::resize() 方法解析(菜鸟看了秒懂)](https://blog.csdn.net/acoolgiser/article/details/102931908)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
std::vector如何追加std::vector
可以使用`insert()`函数或者`resize()`函数来追加`std::vector`。其中,`insert()`函数可以在任意位置插入元素,而`resize()`函数只能在末尾插入元素。下面分别举例说明:
引用中的构造函数部分介绍了如何构造一个空的`vector`和一个包含指定数量的元素的`vector`。可以使用这些构造函数创建一个空的`vector`或者包含若干个指定值的`vector`。例如:
```c++
std::vector<std::vector<int>> vec1; // 创建一个空的vector
std::vector<std::vector<int>> vec2(3, std::vector<int>(4, 1)); // 创建一个由3个vector构成,每个vector包含4个值为1的int值
```
1.使用`insert()`函数追加`std::vector`[^1]
```c++
std::vector<std::vector<int>> vec{{1,2,3},{4,5,6}};
std::vector<int> new_vec{7,8,9};
vec.insert(vec.end(), new_vec.begin(), new_vec.end());
```
上述代码首先创建了一个包含两个vector的vector`vec`,然后创建一个新的vector`new_vec`,最后将`new_vec`追加到`vec`的末尾,实现了向`std::vector`中追加`std::vector`的操作。
2.使用`resize()`函数追加`std::vector`
```c++
std::vector<std::vector<int>> vec{{1,2,3},{4,5,6}};
std::vector<int> new_vec{7,8,9};
vec.resize(vec.size()+1, new_vec);
```
上述代码首先创建了一个包含两个vector的vector`vec`,然后创建一个新的vector`new_vec`,最后将`new_vec`追加到`vec`的末尾,实现了向`std::vector`中追加`std::vector`的操作。