内容简介:性能最差的是map、multimap、set和multiset这两簇。其他容器性能差距不大。非关联容器中,list的性能最差。
遍历
从前往后
性能最差的是map、multimap、set和multiset这两簇。
其他容器性能差距不大。
非关联容器中,list的性能最差。
从后往前
支持从后向前遍历的容器并不多,只有:vector、deque、list、set、map、multiset和multimap。
元素个数>15000
非关联容器的性能要优于关联容器。
非关联容器之间相比,性能差距不大。
在12500个元素之前,vector的效率要比list和deque低,但是之后vector是最优的。
元素个数<4096
vector在初期会有高耗时操作,之后性能优秀(通过斜率)。
结论:
除了map、multimap、set和multiset,其他容器的遍历性能都差不了太多。
查找
因为非关联容器的查找只能通过遍历,其效率和关联容器的查找没法比。所以我们只比较关联容器。
元素个数>15000
set类要优于对应的map类容器。即set优于map;multiset优于multimap;unordered_set优于unordered_map;unordered_multiset优于unordered_multimap。
multi类要优于对应的非multi类容器。即multimap优于map;multiset优于set;unordered_multimap优于unordered_map;unordered_multiset优于unordered_set。
无序关联容器要优于有序关联容器。
文中图例可从如下地址获取: https://github.com/f304646673/stl_perf/tree/master/windows
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 二叉查找树的增加,删除,遍历 python
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——删除
- 图解:单链表删除,不遍历链表也能做(时间复杂度O(1))
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——插入
- 数组常见的遍历循环方法、数组的循环遍历的效率对比
- Js遍历数组总结
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。