搜尋
首頁後端開發C#.Net教程C++_STL常用容器總結:對群組pair中關聯容器與順序容器

對群組pair

在這部分,我們先介紹一下對群組pair中關聯容器與順序容器的公共操作,之後再介紹常用的幾個具體的關聯容器。

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;
  • 1

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

C<T> c(c2);
  • 1

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

C<T> c(b, e);
  • 1

建立 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;
  • 1

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

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

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

make_pair(v1, v2);
  • 1

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

p1 < p2;
  • 1

兩個pair物件之間的小於運算,其定義遵循字典順序:如果p1.first或<code>!(p2.first<p1.first>,回傳true。 </p1.first>

p1 == p2;
  • 1

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

p.first、p.second;
  • 1

傳回p中名為first、second的公有資料成員。

4、pair的建立和初始化

在建立pair物件時,必須提供兩個型別名,pair物件的兩個資料成員各自對應一個,這兩個型別名可以不同。如果在建立pair物件時不提供顯示初始化,則呼叫預設建構函式對其成員進行初始化;也可以在建立物件時使用( )直接顯示初始化式: 
- pair 物件名稱;

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

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

  • ## 2

對於pair類別可以直接存取其資料成員,其成員都是公有的,分別命名為first成員和second成員,使用點運算子即可存取。

相關文章:

c  STL標準容器之Iterator使用

c 複習要點總結z之十二-STL string

相關影片:

C# 教學

以上是C++_STL常用容器總結:對群組pair中關聯容器與順序容器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
char數組在C語言中如何使用char數組在C語言中如何使用Apr 03, 2025 pm 03:24 PM

char 數組在 C 語言中存儲字符序列,聲明為 char array_name[size]。訪問元素通過下標運算符,元素以空終止符 '\0' 結尾,用於表示字符串終點。 C 語言提供多種字符串操作函數,如 strlen()、strcpy()、strcat() 和 strcmp()。

char在C語言中如何處理特殊字符char在C語言中如何處理特殊字符Apr 03, 2025 pm 03:18 PM

C語言中通過轉義序列處理特殊字符,如:\n表示換行符。 \t表示製表符。使用轉義序列或字符常量表示特殊字符,如char c = '\n'。注意,反斜杠需要轉義兩次。不同平台和編譯器可能有不同的轉義序列,請查閱文檔。

char在C語言字符串中的作用是什麼char在C語言字符串中的作用是什麼Apr 03, 2025 pm 03:15 PM

在 C 語言中,char 類型在字符串中用於:1. 存儲單個字符;2. 使用數組表示字符串並以 null 終止符結束;3. 通過字符串操作函數進行操作;4. 從鍵盤讀取或輸出字符串。

C語言各種符號的使用方法C語言各種符號的使用方法Apr 03, 2025 pm 04:48 PM

C 語言中符號的使用方法涵蓋算術、賦值、條件、邏輯、位運算符等。算術運算符用於基本數學運算,賦值運算符用於賦值和加減乘除賦值,條件運算符用於根據條件執行不同操作,邏輯運算符用於邏輯操作,位運算符用於位級操作,特殊常量用於表示空指針、文件結束標記和非數字值。

c#多線程和異步的區別c#多線程和異步的區別Apr 03, 2025 pm 02:57 PM

多線程和異步的區別在於,多線程同時執行多個線程,而異步在不阻塞當前線程的情況下執行操作。多線程用於計算密集型任務,而異步用於用戶交互操作。多線程的優勢是提高計算性能,異步的優勢是不阻塞 UI 線程。選擇多線程還是異步取決於任務性質:計算密集型任務使用多線程,與外部資源交互且需要保持 UI 響應的任務使用異步。

char在C語言中如何進行類型轉換char在C語言中如何進行類型轉換Apr 03, 2025 pm 03:21 PM

在 C 語言中,char 類型轉換可以通過:強制類型轉換:使用強制類型轉換符將一種類型的數據直接轉換為另一種類型。自動類型轉換:當一種類型的數據可以容納另一種類型的值時,編譯器自動進行轉換。

C語言 sum 的作用是什麼?C語言 sum 的作用是什麼?Apr 03, 2025 pm 02:21 PM

C語言中沒有內置求和函數,需自行編寫。可通過遍歷數組並累加元素實現求和:循環版本:使用for循環和數組長度計算求和。指針版本:使用指針指向數組元素,通過自增指針遍歷高效求和。動態分配數組版本:動態分配數組並自行管理內存,確保釋放已分配內存以防止內存洩漏。

char與wchar_t在C語言中的區別char與wchar_t在C語言中的區別Apr 03, 2025 pm 03:09 PM

在 C 語言中,char 和 wchar_t 的主要區別在於字符編碼:char 使用 ASCII 或擴展 ASCII,wchar_t 使用 Unicode;char 佔用 1-2 個字節,wchar_t 佔用 2-4 個字節;char 適用於英語文本,wchar_t 適用於多語言文本;char 廣泛支持,wchar_t 依賴於編譯器和操作系統是否支持 Unicode;char 的字符範圍受限,wchar_t 的字符範圍更大,並使用專門的函數進行算術運算。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器