std::vector swap
时间: 2023-09-17 17:10:30 浏览: 101
Vector用法介绍
4星 · 用户满意度95%
std::vector的swap函数可以用来回收vector对象没有使用的内存。当我们使用erase()函数删除了vector中的一些元素,但是并不希望这些元素占用的内存继续被vector对象占用时,可以使用swap函数来回收内存。swap函数将原来的vector对象与一个新的空vector对象进行交换,然后原来的vector对象会自动销毁,而新的vector对象会成为一个全新的空对象。具体使用方法有两种:
方法一:使用空的临时vector对象进行swap
```cpp
std::vector<int>().swap(myvector);
```
方法二:使用一个带有大括号的代码块来创建临时vector对象进行swap
```cpp
{
std::vector<int> tmp;
myvector.swap(tmp);
}
```
无论使用哪种方法,都可以实现回收vector对象没有使用的内存。使用swap函数后,原来的vector对象的size和capacity都会变为0。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [std::vector---swap](https://blog.csdn.net/yang2014_11/article/details/77712174)[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%"]
- *2* *3* [C++容器std::vector的swap()函数使用](https://blog.csdn.net/feikudai8460/article/details/104902914)[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 ]
阅读全文