C++_STL常用容器有哪些-創(chuàng)新互聯(lián)

這篇文章主要介紹了C++_STL常用容器有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了臨澤免費(fèi)建站歡迎大家使用!

1、關(guān)聯(lián)容器

關(guān)聯(lián)容器是存儲(chǔ)對(duì)象集合的類型,支持通過(guò)鍵的高效查詢。關(guān)聯(lián)容器的大部分行為與順序容器相同,二者的本質(zhì)區(qū)別在于關(guān)聯(lián)容器通過(guò)鍵存儲(chǔ)和讀取元素,而順序容器是通過(guò)元素在容器中的位置順序存儲(chǔ)和訪問(wèn)元素。
關(guān)聯(lián)容器的每個(gè)元素包含一個(gè)鍵值(key)和一個(gè)實(shí)值(value)。當(dāng)元素被插入到關(guān)聯(lián)容器中時(shí),容器內(nèi)部數(shù)據(jù)結(jié)構(gòu)便依照其鍵值大小,以某種特定規(guī)則將這個(gè)元素放置于適當(dāng)位置。關(guān)聯(lián)容器沒(méi)有所謂的頭尾,只有大元素和最小元素,關(guān)聯(lián)容器不提供front、push_front、pop_front、back、push_back、以及pop_back操作。
標(biāo)準(zhǔn)的STL關(guān)聯(lián)容器分為set(集合)和map(映射)兩大類,以及這兩大類的衍生體multiset(多鍵集合)和multimap(多鍵映射表)。這些容器的底層機(jī)制均以RB-tree完成(紅黑樹(shù))。

2、關(guān)聯(lián)容器與順序容器的公共操作

1、關(guān)聯(lián)容器與順序容器共享的構(gòu)造函數(shù)

關(guān)聯(lián)容器共享大部分順序容器的操作,但不是全部,關(guān)聯(lián)容器可以使用以下三個(gè)構(gòu)造函數(shù):

C<T> c;

創(chuàng)建一個(gè)名為 c 的空容器。C 是容器類型名,如 vector,T 是元素類型,如 int 或 string。適用于所有容器。

C<T> c(c2);

創(chuàng)建容器 c2 的副本 c;c 和 c2 必須具有相同的容器類型,并存放相同類型的元素。適用于所有容器。

C<T> c(b, e);

創(chuàng)建 c,其元素是迭代器 b 和 e 標(biāo)示的范圍內(nèi)元素的副本。適用于所有容器。

2、關(guān)聯(lián)容器與順序容器共享的其他函數(shù)

  1. 關(guān)聯(lián)容器不能通過(guò)容器的大小來(lái)定義,因?yàn)檫@樣的話就無(wú)法知道鍵所對(duì)應(yīng)的值是什么了。

  2. 關(guān)聯(lián)容器支持順序容器的一些關(guān)系操作符。

  3. 關(guān)聯(lián)容器支持begin、end、rbegin、rend操作。

  4. 關(guān)聯(lián)容器支持swap和賦值操作,但不提供assign函數(shù)。

  5. 關(guān)聯(lián)容器支持clear和erase函數(shù),但關(guān)聯(lián)容器的erase運(yùn)算返回的是void類型。

  6. 關(guān)聯(lián)容器支持size()、max_size()、empty()函數(shù)作為容器大小的操作,但不支持resize()函數(shù)。

3、對(duì)組pair類型提供的操作

對(duì)組pair包含兩個(gè)數(shù)據(jù)值。具體的使用方法如下:

pair<T1, T2> p1;

創(chuàng)建一個(gè)空的pair對(duì)象,它的兩個(gè)元素分別是T1和T2類型,采用值初始化。

pair<T1, T2> p1(v1, v2);

創(chuàng)建一個(gè)pair對(duì)象,它的兩個(gè)元素分別是T1和T2類型,其中first成員初始化為v1,second成員初始化為v2。

make_pair(v1, v2);

以v1和v2值創(chuàng)建一個(gè)新的pair對(duì)象,其元素的類型分別是v1和v2的類型。

p1 < p2;

兩個(gè)pair對(duì)象之間的小于運(yùn)算,其定義遵循字典次序:如果p1.first<p2.first或者!(p2.first<p1.first)&&p1.second<p2.second,返回true。

p1 == p2;

如果兩個(gè)pair對(duì)象的first成員和second成員依次相等,則這兩個(gè)對(duì)象相等,該運(yùn)算使用其元素的==操作符。

p.first、p.second;

返回p中名為first、second的公有數(shù)據(jù)成員。

4、pair的創(chuàng)建和初始化

在創(chuàng)建pair對(duì)象時(shí),必須提供兩個(gè)類型名,pair對(duì)象的兩個(gè)數(shù)據(jù)成員各自對(duì)應(yīng)一個(gè),這兩個(gè)類型名可以不同。如果在創(chuàng)建pair對(duì)象時(shí)不提供顯示初始化,則調(diào)用默認(rèn)構(gòu)造函數(shù)對(duì)其成員進(jìn)行初始化;也可以在創(chuàng)建對(duì)象時(shí)使用( )直接顯示初始化式:
- pair<類型1, 類型2> 對(duì)象名;

如果使用多個(gè)相同的pair對(duì)象,也可以使用typedef簡(jiǎn)化其聲明:

typedef  pair <string, string>  Author;
Author 對(duì)象名(初始值1,初始值2);

對(duì)于pair類可以直接訪問(wèn)其數(shù)據(jù)成員,其成員都是公有的,分別命名為first成員和second成員,使用點(diǎn)操作符即可訪問(wèn)。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“C++_STL常用容器有哪些”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司,關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、網(wǎng)站設(shè)計(jì)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前標(biāo)題:C++_STL常用容器有哪些-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://muchs.cn/article14/depede.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、微信公眾號(hào)、商城網(wǎng)站、企業(yè)建站、網(wǎng)站營(yíng)銷、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)