vector的clear能清除其内存吗

在C++中,std::vector的clear函数会移除向量中的所有元素,使得它的大小变为0。
然而,clear函数并不会立即释放向量所占用的内存。向量仍然会保留其已分配的内存,以备后续添加元素时使用。
如果你想要立即释放内存,可以考虑使用交换技巧(swap trick)。
size和capacity是两个值,capacity才是实际内存的容量,size代表其大小

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

	交换技巧是指用一个临时向量与原始向量进行交换。
	这样,原始向量的大小变为0,并且其内存被释放。你可以使用std::vector()来创建一个临时向量。
	swap(arr,vector());
	也可以arr={};
	*/
	vector<int> arr(10);
	arr.clear();
	arr.reserve(0);
	arr = {};
	return 0;
}

vector的clear能清除其内存吗_第1张图片
vector的clear能清除其内存吗_第2张图片
vector的clear能清除其内存吗_第3张图片

vector的clear能清除其内存吗_第4张图片

你可能感兴趣的:(C++,c++)