脚本宝典收集整理的这篇文章主要介绍了C++ : vector与string的内存分配问题,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
int main() {
std::string s;
for (int i = 0 ; i < 345; ++i) { s += '0'; }
cout << s.size() << " " << s.capacity() << endl;
string(s).swap(s);
cout << s.size() << " " << s.capacity() << endl;
/* differ from vector, seems it do not work to release the extra space
* print
* 345 512
* 345 512
*/
std::vector<int> vec;
for (int i = 0 ; i < 345; ++i) {
vec.push_back(i);
}
cout << vec.size() << " " << vec.capacity() << endl;
vector<int>(vec).swap(vec);
cout << vec.size() << " " << vec.capacity() << endl;
/*
* print : extra free space is released
* 345 512
* 345 345
*/
return 0;
}
以上是脚本宝典为你收集整理的C++ : vector与string的内存分配问题全部内容,希望文章能够帮你解决C++ : vector与string的内存分配问题所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。