vector<> VS <> deque<> VS list<>
来源:互联网 发布:丁香诊所怎么样 知乎 编辑:程序博客网 时间:2024/05/10 12:28
Here is the summary from an interesting performance benchmark article which comparing vector and list int C++11
Conclusion for vector<> VS deque<> VS list<>:
To conclude, we can get some facts about each data structure:
- std::list is very very slow to iterate through the collection due to its very poor spatial locality.
- std::vector and std::deque perform always faster than std::list with very small data
- std::list handles very well large elements
- std::deque performs better than a std::vector for inserting at random positions (especially at the front, which is constant time)
- std::deque and std::vector do not support very well data types with high cost of copy/assignment
This draw simple conclusions on usage of each data structure:
- Number crunching: use std::vector or std::deque
- Linear search: use std::vector or std::deque
- Random Insert/Remove: use std::list (if data size very small (< 64B on my computer), use std::deque)
- Big data size: use std::list (not if intended for searching)
- Non-trivial data type: use std::list
- Push to front: use std::deque or std::list
Updated conclusion for vector<> VS list<>:
Reference:- std::vector is insanely faster than std::list to find an element
- std::vector performs always faster than std::list with very small data
- std::vector is always faster to push elements at the back than std::list
- std::list handles very well large elements, especially for sorting or inserting in the front
This draw simple conclusions on usage of each data structure:
- Number crunching: use std::vector
- Linear search: use std::vector
- Random Insert/Remove: use std::list (if data size very small (< 64B on my computer), use std::vector)
- Big data size: use std::list (not if intended for searching)
http://www.baptiste-wicht.com/2012/11/cpp-benchmark-vector-vs-list/
http://www.baptiste-wicht.com/2012/12/cpp-benchmark-vector-list-deque/
- vector<> VS <> deque<> VS list<>
- vector vs deque
- vector VS deque (zz)
- 【转贴】vector vs deque
- C++ benchmark – std::vector VS std::list VS std::deque
- python deque vs Queue vs list
- java的List集合们ArrayList vs. LinkedList vs. Vector
- vector, list, deque
- vector,deque,list区别
- 顺序 vector deque list
- vector,deque,list区别
- vector、list、deque区别
- Vector,List及Deque
- vector deque list
- vector list deque
- vector list deque
- vector, list, deque 比较
- vector,deque,list区别
- 2个堆栈实现自定义队列的入队出队方法 - 调用者定义2个栈的容量
- android中的handler
- Unity3D导入的FBX场景模型设置物体之间的碰撞
- 指针
- 文件下载IllegalStateException 最简单的解决办法直接return null
- vector<> VS <> deque<> VS list<>
- typedef int int_array[4];
- Javascript中嵌入php代码、Javascript中函数参数的默认值
- 3.XAML
- 【phpcms-v9】phpcms-v9中系统管理员登陆页面控制器文件分析:phpcms/modules/admin/index.php
- Java中十个常见的违规编码
- android 驱动开发一
- pathinfo设置
- struct epoll_event