在C++中,std::vector的clear函数会移除向量中的所有元素,使得它的大小变为0。
然而,clear函数并不会立即释放向量所占用的内存。向量仍然会保留其已分配的内存,以备后续添加元素时使用。
如果你想要立即释放内存,可以考虑使用交换技巧(swap trick)。
size和capacity是两个值,capacity才是实际内存的容量,size代表其大小
交换技巧是指用一个临时向量与原始向量进行交换。
这样,原始向量的大小变为0,并且其内存被释放。你可以使用std::vector<T>()来创建一个临时向量。
swap(arr,vector<int>());
也可以arr={};
#include<iostream>
using namespace std;
#include<vector>
int main()
{
/*
在C++中,std::vector的clear函数会移除向量中的所有元素,使得它的大小变为0。
然而,clear函数并不会立即释放向量所占用的内存。向量仍然会保留其已分配的内存,以备后续添加元素时使用。
如果你想要立即释放内存,可以考虑使用交换技巧(swap trick)。
交换技巧是指用一个临时向量与原始向量进行交换。
这样,原始向量的大小变为0,并且其内存被释放。你可以使用std::vector<T>()来创建一个临时向量。
swap(arr,vector<int>());
也可以arr={};
*/
vector<int> arr(10);
arr.clear();
arr.reserve(0);
arr = {};
return 0;
}