C++STL容器,你真的会用了吗?——插入、删除、遍历和查找操作性能对比——插入(精简易懂版,句句干货)
生活随笔
收集整理的這篇文章主要介紹了
C++STL容器,你真的会用了吗?——插入、删除、遍历和查找操作性能对比——插入(精简易懂版,句句干货)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文中將測試vector、list、forward_list、deque、set(multiset)、unordered_set(unordered_multiset)、map(multimap)和unordered_map(unordered_multimap)。沒有討論stack、queue和priority_queue,是因為它們底層是使用deque或者vector實現的。
增加和刪除操作將從容器的頭部、中部、尾部三個位置進行對比
遍歷分為從頭部和尾部兩個方向遍歷;
查找操作只對比set和map系列容器。因為其他容器的查找都需要遍歷進行對比,性能遠不及這兩類容器。
插入
頭部插入
deque的性能是最好的,其次是unordered_set(神一般的存在)。
當元素個數比較多時,vector的性能是最差的。
中間插入
vector容器性能是最差的。
forward_list和list的性能是最好的。然后是deque和set。
尾部插入
vector性能是最好的,其次是deque。
map性能是最差的。
結論:
在尾部插入時,vector的性能是最好的
deque在頭部和尾部插入元素場景下性能優異。
list和forward_list在中間插入元素場景下性能優異。
總結
以上是生活随笔為你收集整理的C++STL容器,你真的会用了吗?——插入、删除、遍历和查找操作性能对比——插入(精简易懂版,句句干货)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STL之七:STL各种容器的使用时机详解
- 下一篇: C++STL容器,你真的会用了吗?——插