c++ map是有序还是无序的_c++中map与unordered_map的区别
生活随笔
收集整理的這篇文章主要介紹了
c++ map是有序还是无序的_c++中map与unordered_map的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
map:
優點:
有序性,這是map結構最大的優點,其元素的有序性在很多應用中都會簡化很多的操作
紅黑樹,內部實現一個紅黑書使得map的很多操作在lgn的時間復雜度下就可以實現,因此效率非常的高
缺點: 空間占用率高,因為map內部實現了紅黑樹,雖然提高了運行效率,但是因為每一個節點都需要額外保存父節點、孩子節點和紅/黑性質,使得每一個節點都占用大量的空間
適用處:對于那些有順序要求的問題,用map會更高效一些
unordered_map:
優點: 因為內部實現了哈希表,因此其查找速度非常的快
缺點: 哈希表的建立比較耗費時間
適用處:對于查找問題,unordered_map會更加高效一些,因此遇到查找問題,常會考慮一下用unordered_map
總結:
1. 內存占有率的問題就轉化成紅黑樹 VS hash表 , 還是unorder_map占用的內存要高。
2. 但是unordered_map執行效率要比map高很多
3. 對于unordered_map或unordered_set容器,其遍歷順序與創建該容器時輸入的順序不一定相同,因為遍歷是按照哈希表從前往后依次遍歷的
總結
以上是生活随笔為你收集整理的c++ map是有序还是无序的_c++中map与unordered_map的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt当前工程相对路径_QT编程:(6)相
- 下一篇: s3c2440移植MQTT