91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++_STL常用容器有哪些

發布時間:2021-09-15 18:03:18 來源:億速云 閱讀:145 作者:小新 欄目:編程語言

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

1、關聯容器

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

2、關聯容器與順序容器的公共操作

1、關聯容器與順序容器共享的構造函數

關聯容器共享大部分順序容器的操作,但不是全部,關聯容器可以使用以下三個構造函數:

C<T> c;

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

C<T> c(c2);

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

C<T> c(b, e);

創建 c,其元素是迭代器 b 和 e 標示的范圍內元素的副本。適用于所有容器。

2、關聯容器與順序容器共享的其他函數

  1. 關聯容器不能通過容器的大小來定義,因為這樣的話就無法知道鍵所對應的值是什么了。

  2. 關聯容器支持順序容器的一些關系操作符。

  3. 關聯容器支持begin、end、rbegin、rend操作。

  4. 關聯容器支持swap和賦值操作,但不提供assign函數。

  5. 關聯容器支持clear和erase函數,但關聯容器的erase運算返回的是void類型。

  6. 關聯容器支持size()、max_size()、empty()函數作為容器大小的操作,但不支持resize()函數。

3、對組pair類型提供的操作

對組pair包含兩個數據值。具體的使用方法如下:

pair<T1, T2> p1;

創建一個空的pair對象,它的兩個元素分別是T1和T2類型,采用值初始化。

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

創建一個pair對象,它的兩個元素分別是T1和T2類型,其中first成員初始化為v1,second成員初始化為v2。

make_pair(v1, v2);

以v1和v2值創建一個新的pair對象,其元素的類型分別是v1和v2的類型。

p1 < p2;

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

p1 == p2;

如果兩個pair對象的first成員和second成員依次相等,則這兩個對象相等,該運算使用其元素的==操作符。

p.first、p.second;

返回p中名為first、second的公有數據成員。

4、pair的創建和初始化

在創建pair對象時,必須提供兩個類型名,pair對象的兩個數據成員各自對應一個,這兩個類型名可以不同。如果在創建pair對象時不提供顯示初始化,則調用默認構造函數對其成員進行初始化;也可以在創建對象時使用( )直接顯示初始化式:
- pair<類型1, 類型2> 對象名;

如果使用多個相同的pair對象,也可以使用typedef簡化其聲明:

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

對于pair類可以直接訪問其數據成員,其成員都是公有的,分別命名為first成員和second成員,使用點操作符即可訪問。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“C++_STL常用容器有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

郓城县| 疏附县| 开原市| 扶风县| 得荣县| 达州市| 靖江市| 乌苏市| 濮阳县| 金阳县| 五家渠市| 信丰县| 华亭县| 吉水县| 雅江县| 铁岭县| 武义县| 白沙| 乌海市| 鹿邑县| 黎川县| 莱州市| 莱芜市| 射阳县| 顺昌县| 法库县| 永济市| 民丰县| 延庆县| 察雅县| 灵宝市| 武邑县| 天等县| 旌德县| 景洪市| 德惠市| 屯昌县| 沂源县| 察隅县| 满洲里市| 宝山区|