這篇文章主要講解了“C++11無序關(guān)聯(lián)容器有哪幾種”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C++11無序關(guān)聯(lián)容器有哪幾種”吧!
創(chuàng)新互聯(lián)憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗,為客戶提供超值的營銷型網(wǎng)站建設(shè)服務(wù),我們始終認為:好的營銷型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個人等客戶提供了成都網(wǎng)站設(shè)計、成都做網(wǎng)站服務(wù),以良好的商業(yè)信譽,完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。
在C++11之前的關(guān)聯(lián)容器一共有四種。
首先是兩種最基本的類型:map和set。map中保存的是關(guān)鍵字-值的組合,而set中只保存關(guān)鍵字。
map和set中的關(guān)鍵字不允許重復(fù),一旦相同的關(guān)鍵字重新寫入,則原來的內(nèi)容被覆蓋。如果希望關(guān)鍵字可以重復(fù),可以使用multimap和multiset。
用圖表表示就是下面這樣。
由于這些關(guān)聯(lián)容器的存儲位置是根據(jù)比較運算符決定的,所以也成為有序關(guān)聯(lián)容器。
無序關(guān)聯(lián)容器
C++11另外引入了4種無序關(guān)聯(lián)容器(unordered associative container)。這些容器將存儲組織為一組桶,根據(jù)哈希值將數(shù)據(jù)映射到桶。與有序關(guān)聯(lián)容器類似,無序關(guān)聯(lián)容器也可以用同樣的標(biāo)準(zhǔn)分類:
除了哈希管理操作以外,無序容器還提供了與有序容器相同的操作。也就是說有序容器和無序容器可以互換。
無序容器的優(yōu)勢
用一句話概括,就是通常情況下,無序容器通常會有更好的性能。下面用一段程序來確認這個結(jié)論。
從實際的結(jié)果來看,使用無序關(guān)聯(lián)容器時的操作時間不到使用有序關(guān)聯(lián)容器時的一半。
感謝各位的閱讀,以上就是“C++11無序關(guān)聯(lián)容器有哪幾種”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對C++11無序關(guān)聯(lián)容器有哪幾種這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!