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