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的性能差
当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的性能差
相关文章推荐
- STL-- vector中resize()和reserve()区别
- vector 的resize 与reserve的区别
- vector的reserve和resize的区别
- vector::reserve和vector::resize的区别
- vector中resize()和reserve()的区别
- vector.resize 与 vector.reserve的区别(转载)
- c++中vector的 resize()和reserve()区别
- vector中的reserve和resize的区别
- vector.resize 与 vector.reserve的区别
- vector容器成员函数resize与reserve的区别
- vector中resize()和reserve()区别
- C++中vector<> resize()和reserve区别
- [转]vector.resize 与 vector.reserve的区别
- vector.resize 与 vector.reserve的区别
- vector.resize 与 vector.reserve的区别
- vector的reserve和resize的区别
- C++ vector的访问(resize,pu_back与下标访问的区别)
- vector中resize与reserve的区别
- vector 在c++中resize 和reserve的区别
- vector.resize 与 vector.reserve的区别