#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec;
for(int i = 0; i < 5; i++)
{
vec.emplace_back(i);
}
cout << vec.size() << " " << vec.capacity() << endl; //调试语句,查看内存是否真的释放掉了
//方式一:使用clear()
vec.clear();
cout << vec.size() << " " << vec.capacity() << endl;
//方式二:使用erase(),有两种写法
//写法一:
vector<int>::iterator iter;
for(iter = vec.begin(); iter != vec.end();)
{
//使用erase后不要随意使用iter++
iter = vec.erase(iter);
}
//写法二:
vec.erase(vec.begin(), vec.end());
cout << vec.size() << " " << vec.capacity() << endl;
//方式三:使用swap()
//实际上就是把要释放的vector与一个空向量进行交换,达到彻底释放的目的
vector<int>().swap(vec);
cout << vec.size() << " " << vec.capacity() << endl;
return 0;
}
几种方式执行后的打印结果:
你学费了吗=。=