GeekHub

[c++] vector释放内存的方法

c++中std::vectror<type>中有一个成员函数clear(),通过该clear()函数可以清空vector中所有的数据,但调用clear()只会清空vector内存空间中的数据,并不能释放系统给vector分配的内存。

可以通过调用vector的成员函数swap(*std::vector<type> &other_vec)实现vector内存释放,swap(*std::vector &other_vec)的功能是实现当前vector与另外一个vector进行数据交换,具体使用方法如下:

std::vector<int> the_vector;
the_vector.push_back(1);
{   
	std::vector<COWA::math::Vec2d> tmp; //声明一个新的vector
	the_vector.swap(tmp); //使用成员函数与新的vector进行数据交换
} //花括号用于限定tmp的作用域,使其出括号时调用析构函数释放从the_vector交换来的数据占用的内存空间

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注