std::vector 如何进行resize
时间: 2024-04-08 11:26:20 浏览: 139
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 reserve resize
`std::vector` 是 C++ 标准库中的动态数组容器,它提供了一种高效且灵活的数据存储方式。`reserve` 和 `resize` 是两个非常重要的方法,它们分别用于预分配内存和调整向量的大小。
1. `reserve(size_type n)` 方法: 这个方法用于预先为 `std::vector` 预留空间。当你知道将来可能会添加大量元素,但不确定何时添加,使用 `reserve` 可以避免频繁的动态内存分配和复制,提高性能。参数 `n` 是你想要预留的空间量。如果当前向量的容量小于 `n`,`reserve` 会直接扩展容器的容量到 `n`。
2. `resize(size_type new_size, const T& value = T())`: 这个方法用于改变向量的大小并可能填充新元素。如果 `new_size` 大于当前容量,它会增加元素直到达到新的大小,如果 `new_size` 小于当前容量,会删除超出的部分(除非指定了 `value`)。你可以传入默认值 `value` 来设置新元素的初始值。
阅读全文