真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【C++零散】unordered-創(chuàng)新互聯(lián)

文章目錄
  • 1 map與unordered_map區(qū)別及使用
  • 2 set與unordered_set區(qū)別(與map類似):
  • 3 vector和list的區(qū)別(隨機(jī)存取、插入刪除)

勐臘網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
1 map與unordered_map區(qū)別及使用

需要引入的頭文件不同:

  • map:#include
  • unordered_map:#include

內(nèi)部實(shí)現(xiàn)機(jī)理不同:

  • map:

    • map內(nèi)部實(shí)現(xiàn)了一個(gè)紅黑樹(shù)(紅黑樹(shù)是非嚴(yán)格平衡二叉搜索樹(shù),而AVL是嚴(yán)格平衡二叉搜索樹(shù))
    • 紅黑樹(shù)具有自動(dòng)排序的功能,因此map內(nèi)部的所有元素都是有序的
    • map中的元素是按照二叉搜索樹(shù)(又名二叉查找樹(shù)、二叉排序樹(shù),特點(diǎn)就是左子樹(shù)上所有節(jié)點(diǎn)的鍵值都小于根節(jié)點(diǎn)的鍵值,右子樹(shù)所有節(jié)點(diǎn)的鍵值都大于根節(jié)點(diǎn)的鍵值)存儲(chǔ)的,使用中序遍歷可將鍵值按照從小到大遍歷出來(lái)。
  • unordered_map:

    • unordered_map內(nèi)部實(shí)現(xiàn)了一個(gè)哈希表(也叫散列表,通過(guò)把關(guān)鍵碼值映射到Hash表中一個(gè)位置來(lái)訪問(wèn)記錄,查找的時(shí)間復(fù)雜度可達(dá)到O(1),其在海量數(shù)據(jù)處理中有著廣泛應(yīng)用)。
    • 因此,其元素的排列順序是無(wú)序的。

優(yōu)缺點(diǎn)以及適用處:

  • map:

    • 優(yōu)點(diǎn):有序性,這是map結(jié)構(gòu)大的優(yōu)點(diǎn),其元素的有序性在很多應(yīng)用中都會(huì)簡(jiǎn)化很多的操作,內(nèi)部實(shí)現(xiàn)一個(gè)紅黑樹(shù)使得map的很多操作在log(n)的時(shí)間復(fù)雜度下就可以實(shí)現(xiàn),因此效率非常的高
    • 缺點(diǎn): 空間占用率高,因?yàn)閙ap內(nèi)部實(shí)現(xiàn)了紅黑樹(shù),雖然提高了運(yùn)行效率,但是因?yàn)槊恳粋€(gè)節(jié)點(diǎn)都需要額外保存父節(jié)點(diǎn)、孩子節(jié)點(diǎn)和紅/黑性質(zhì),使得每一個(gè)節(jié)點(diǎn)都占用大量的空間
    • 適用處:對(duì)于那些有順序要求的問(wèn)題,用map會(huì)更高效一些
  • unordered_map:

    • 優(yōu)點(diǎn): 因?yàn)閮?nèi)部實(shí)現(xiàn)了哈希表,因此其查找速度非常的快
    • 缺點(diǎn): 哈希表的建立比較耗費(fèi)時(shí)間
    • 適用處:對(duì)于查找問(wèn)題,unordered_map會(huì)更加高效一些,因此遇到查找問(wèn)題,常會(huì)考慮一下用unordered_map
  • 總結(jié):

    • 內(nèi)存占有率的問(wèn)題就轉(zhuǎn)化成紅黑樹(shù) VS hash表, 還是unordered_map占用的內(nèi)存要高。但是unordered_map執(zhí)行效率要比map高很多
    • 對(duì)于unordered_map或unordered_set容器,其遍歷順序與創(chuàng)建該容器時(shí)輸入的順序不一定相同,因?yàn)楸闅v是按照哈希表從前往后依次遍歷的
2 set與unordered_set區(qū)別(與map類似):
  • set:基于紅黑樹(shù)實(shí)現(xiàn),紅黑樹(shù)具有自動(dòng)排序的功能,因此set內(nèi)部所有的數(shù)據(jù),在任何時(shí)候,都是有序的。
  • unordered_set:
    • 基于哈希表,數(shù)據(jù)插入和查找的時(shí)間復(fù)雜度很低,幾乎是常數(shù)時(shí)間,而代價(jià)是消耗比較多的內(nèi)存,無(wú)自動(dòng)排序功能。
    • 底層實(shí)現(xiàn)上,使用一個(gè)下標(biāo)范圍比較大的數(shù)組來(lái)存儲(chǔ)元素,形成很多的桶,利用hash函數(shù),來(lái)對(duì)key進(jìn)行映射到不同區(qū)域進(jìn)行保存。
3 vector和list的區(qū)別(隨機(jī)存取、插入刪除)
  • vector擁有一段連續(xù)的內(nèi)存空間,因此支持隨機(jī)存取,如果需要高效的隨機(jī)存取,而不在乎插入和刪除的效率,使用vector。
  • list擁有一段不連續(xù)的內(nèi)存空間,因此不支持隨機(jī)存取,如果需要大量的插入和刪除,而不關(guān)心隨機(jī)存取,則應(yīng)使用list。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)站欄目:【C++零散】unordered-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://weahome.cn/article/decsie.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部