vector 的删除操作pop_back、erase效率对比
2012-10-11 11:33
791 查看
#include <vector> #include <iostream> #include <time.h> using namespace std; struct Point { int x; int y; Point():x(0),y(0) {} }; int main() { clock_t s1,f1,s2,f2; s1=clock(); vector<Point> point_vec(100000000); f1=clock(); cout<<(double)(f1-s1)/CLOCKS_PER_SEC<<" S"<<endl; s2=clock(); // for (int i=0; i<10000000; ++i) // { // point_vec.pop_back(); // } // point_vec.erase(point_vec.begin(),point_vec.begin()+10000000); point_vec.erase(point_vec.end()-10000000,point_vec.end()); f2=clock(); cout<<(double)(f2-s2)/CLOCKS_PER_SEC<<" S"<<endl; return 0; }
VC++6.0
建立:
用strcut{int,int}类型来建立vector,10^8个,用时4.17s。
删除:
用erase删除vector最后的10^7个元素,用时0.25s。
用pop_back及循环删除最后的10^7个,用时1.02s。
用erase删除vector最前的10^7个元素,用时0.48s。
对于这一点比较惊讶,毕竟还要向前移动9*10^8个元素。
配置:Intel core i7处理器,8G内存。程序占用内存780M左右。
相关文章推荐
- vector 的删除操作pop_back、erase效率对比 http://blog.csdn.net/efeics/article/details/8059690
- vector删除元素之pop_back(),erase(),remove()
- C++ 顺序容器的操作(6) 删除元素 erase、clear、pop_back、pop_front
- 删除vector容器中的对象元素的三种方法:pop_back, erase与remove算法
- 删除vector容器中的对象元素的三种方法:pop_back, erase与remove算法
- 删除vector容器中的对象元素的三种方法:pop_back, erase与remove算法http://www.xuebuyuan.com/1407838.html
- C++STL中对vector进行erase删除元素操作中遇到的问题。
- list(链表)常用成员(顺序容器)----插入push_back,push_front,insert删除pop_back,pop_front,erase,clear遍历begin,end判空em
- 关于vector push_back()与其他方式读取数据的效率对比
- vector删除操作 erase方法注意事项
- list(链表)常用成员(顺序容器)----插入push_back,push_front,insert删除pop_back,pop_front,erase,clear遍历begin,end判空emp
- STL中vector的赋值,遍历,查找,删除,自定义排序——sort,push_back,find,erase
- list(链表)常用成员(顺序容器)----插入push_back,push_front,insert删除pop_back,pop_front,erase,clear遍历begin,end判空empt
- 关于vector push_back()与其他方式读取数据的效率对比(转)
- list(链表)常用成员(顺序容器)----插入push_back,push_front,insert删除pop_back,pop_front,erase,clear遍历begin,end判空emp
- 关于vector的erase删除操作的两种不同方法,在linux与visual studio的实现讨论
- 一个空的vector执行pop_back操作会发生什么?
- vector删除操作 erase方法注意事项
- lua:部分常用操作的效率对比及代码优化建议(附测试代码)
- mysql表删除重复记录方法总结及效率对比