对于vector容器datas,
std::vector<int> datas;
...
除去datas多余的容量,使用:
std::vector<int>(datas).swap(datas);
std::vector(datas)以datas作为参数构造一临时对象,
这个临时对象中,size() = capactiy(),无任何多余容量。
然后与datas进行swap操作, datas的数据变为改临时对象的值,达到除去多余容量的目的。
也可以使用如下形式清空表,同时使其容量达到最小。
std::vector<int>().swap(datas);
string同vector一样。
注:
C++11中, vector和string都有成员函数shrink_to_fit()也可以达到改目的。
其函数声明为:
void shrink_to_fit();