您的位置:首页 > 其它

vector::resize 和 clear 的区别

2011-10-17 19:15 218 查看
看linux下面的stl源码, 发现stl的resize和clear区别不大。

当resize的目标size比当前的size要大的时候, 需要insert到末尾处, 否则就erase到目标大小。

代码为:

void resize(size_type __new_size, const value_type& __x) { if (__new_size < size()) erase(begin() + __new_size, end()); else insert(end(), __new_size - size(), __x); }

而clear就是一个简单的

erase(begin(), end());

所以从性能上来说, 同样清空vector, resize的性能要比clear的性能差
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: