日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

c++几种STL比较

發布時間:2025/6/15 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++几种STL比较 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

STL工作和面試考的比較多了,下面整理一下。
1、Vector
變長一維數組,連續存放的內存塊,有保留內存,堆中分配內存;
支持[]操作,高效率的隨機訪問;
在最后增加元素時,一般不需要分配內存空間,速度快;在中間或開始操作元素時要進行內存拷貝效率低;
vector高效的原因在于配置了比其所容納的元素更多的內存,內存重新配置會花很多時間;
注:需要高效的隨即存取,而不在乎插入和刪除使用vector。
2、list
雙向鏈表,內存空間上可能是不連續的,無保留內存,堆中分配內存;
不支持隨機存取,開始和結尾元素的訪問時間快,其它元素都O(n);
在任何位置安插和刪除元素速度都比較快,安插和刪除操作不會使其他元素的各個pointer,reference,iterator失效;
注:大量的插入和刪除,而不關系隨即存取使用list。
3、deque
雙端隊列,在堆上分配內存,一個堆保存幾個元素,而堆之間使用指針連接;
支持[]操作,在首端和末端插入和刪除元素比較快,在中部插入和刪除則比較慢,像是list和vector的結合;
注:關心插入和刪除并關心隨即存取折中使用deque。
4、set&multiset
有序集合,使用平衡二叉樹存儲,按照給定的排序規則(默認按less排序)對set中的數據進行排序;
set中不允許有重復元素,multiset中運行有重復元素;
兩者不支持直接存取元素的操作;
因為是自動排序,查找元素速度比較快;
不能直接改變元素值,否則會打亂原本正確的順序,必須先下刪除舊元素,再插入新的元素。
5、map&multimap
字典庫,一個值映射成另一個值,使用平衡二叉樹存儲,按照給定的排序規則對map中的key值進行排序;
map中的key值不允許重復,multimap中的key允許重復;
根據已知的key值查找元素比較快;
插入和刪除操作比較慢。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的c++几种STL比较的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。