新聞中心
這篇文章主要介紹了C++_STL常用容器有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)建站長期為上千家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為類烏齊企業(yè)提供專業(yè)的成都網(wǎng)站設計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設,類烏齊網(wǎng)站改版等技術服務。擁有10余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
1、關聯(lián)容器
關聯(lián)容器是存儲對象集合的類型,支持通過鍵的高效查詢。關聯(lián)容器的大部分行為與順序容器相同,二者的本質(zhì)區(qū)別在于關聯(lián)容器通過鍵存儲和讀取元素,而順序容器是通過元素在容器中的位置順序存儲和訪問元素。
關聯(lián)容器的每個元素包含一個鍵值(key)和一個實值(value)。當元素被插入到關聯(lián)容器中時,容器內(nèi)部數(shù)據(jù)結(jié)構(gòu)便依照其鍵值大小,以某種特定規(guī)則將這個元素放置于適當位置。關聯(lián)容器沒有所謂的頭尾,只有最大元素和最小元素,關聯(lián)容器不提供front、push_front、pop_front、back、push_back、以及pop_back操作。
標準的STL關聯(lián)容器分為set(集合)和map(映射)兩大類,以及這兩大類的衍生體multiset(多鍵集合)和multimap(多鍵映射表)。這些容器的底層機制均以RB-tree完成(紅黑樹)。
2、關聯(lián)容器與順序容器的公共操作
1、關聯(lián)容器與順序容器共享的構(gòu)造函數(shù)
關聯(lián)容器共享大部分順序容器的操作,但不是全部,關聯(lián)容器可以使用以下三個構(gòu)造函數(shù):
Cc;
創(chuàng)建一個名為 c 的空容器。C 是容器類型名,如 vector,T 是元素類型,如 int 或 string。適用于所有容器。
Cc(c2);
創(chuàng)建容器 c2 的副本 c;c 和 c2 必須具有相同的容器類型,并存放相同類型的元素。適用于所有容器。
Cc(b, e);
創(chuàng)建 c,其元素是迭代器 b 和 e 標示的范圍內(nèi)元素的副本。適用于所有容器。
2、關聯(lián)容器與順序容器共享的其他函數(shù)
關聯(lián)容器不能通過容器的大小來定義,因為這樣的話就無法知道鍵所對應的值是什么了。
關聯(lián)容器支持順序容器的一些關系操作符。
關聯(lián)容器支持begin、end、rbegin、rend操作。
關聯(lián)容器支持swap和賦值操作,但不提供assign函數(shù)。
關聯(lián)容器支持clear和erase函數(shù),但關聯(lián)容器的erase運算返回的是void類型。
關聯(lián)容器支持size()、max_size()、empty()函數(shù)作為容器大小的操作,但不支持resize()函數(shù)。
3、對組pair類型提供的操作
對組pair包含兩個數(shù)據(jù)值。具體的使用方法如下:
pairp1;
創(chuàng)建一個空的pair對象,它的兩個元素分別是T1和T2類型,采用值初始化。
pairp1(v1, v2);
創(chuàng)建一個pair對象,它的兩個元素分別是T1和T2類型,其中first成員初始化為v1,second成員初始化為v2。
make_pair(v1, v2);
以v1和v2值創(chuàng)建一個新的pair對象,其元素的類型分別是v1和v2的類型。
p1 < p2;
兩個pair對象之間的小于運算,其定義遵循字典次序:如果p1.first
!(p2.first
p1 == p2;
如果兩個pair對象的first成員和second成員依次相等,則這兩個對象相等,該運算使用其元素的==操作符。
p.first、p.second;
返回p中名為first、second的公有數(shù)據(jù)成員。
4、pair的創(chuàng)建和初始化
在創(chuàng)建pair對象時,必須提供兩個類型名,pair對象的兩個數(shù)據(jù)成員各自對應一個,這兩個類型名可以不同。如果在創(chuàng)建pair對象時不提供顯示初始化,則調(diào)用默認構(gòu)造函數(shù)對其成員進行初始化;也可以在創(chuàng)建對象時使用( )直接顯示初始化式:
- pair<類型1, 類型2> 對象名;
如果使用多個相同的pair對象,也可以使用typedef簡化其聲明:
typedef pairAuthor; Author 對象名(初始值1,初始值2);
對于pair類可以直接訪問其數(shù)據(jù)成員,其成員都是公有的,分別命名為first成員和second成員,使用點操作符即可訪問。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“C++_STL常用容器有哪些”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!
本文名稱:C++_STL常用容器有哪些
路徑分享:http://fisionsoft.com.cn/article/phdcog.html