C STL之map映照容器

2021-07-05 20:13:35 字數 2116 閱讀 1515

map映照容器的元素資料報含兩個部分:

乙個鍵值;

乙個映照的資料;

組成的,鍵值和映照資料之間具有一一對應的關係。

map映照容器的資料結構也是採用紅黑樹來實現的,請注意:不允許插入元素的鍵值相同。比較函式所比較的也只是鍵值之間的比較,在檢索的時候,通俗的說查詢的時候,還是通過鍵值進行查詢。

map的用法和set及其相似,如果你之前的都看了,相信你可以猜到map有哪些方法以及操作了

*map建立、元素插入和遍歷訪問

建立map物件,鍵值和映照資料的型別自己來定義。在沒有指定比較函式的時候,元素的插入位置是按鍵值的由小到大的順序進行插入的。

//請注意:程式在編譯的時候,會產生代號為warning c4786的警告,4786警告的意思是

//標記符超長警告的代號。可以在程式的標頭檔案中加上#pragma warning(disable:4786)

//巨集語句,強制編譯器忽略該警告,4786警告對程式的正確性以及程式的正常執行沒有影響

#pragma warning(disable:4786)

#include#include#includeusing namespace std;

int main()

};int main() };

int main()

{ mapm;

info info;

info.name = "caicai";

info.score = 60;

m[info] = 25;

info.name = "ningbo";

info.score = 80;

m[info] = 10;

info.name = "zhejiang";

info.score = 67;

m[info] = 30;

map::iterator it;

for(it = m.begin(); it != m.end(); it ++)

{ cout<<(*it).second<<" : ";

cout<<((*it).first).name<<" "<<((*it).first).score<

對數字各位進行分離,把數字當做字串進行處理,使用map的映照功能,很便捷的對數字進行分離

#pragma warning(disable:4786)

#include#include#includeusing namespace std;

int main()

{ mapm;

m['0'] = 0;

m['1'] = 1;

m['2'] = 2;

m['3'] = 3;

m['4'] = 4;

m['5'] = 5;

m['6'] = 6;

m['7'] = 7;

m['8'] = 8;

m['9'] = 9;

for(int i = 0; i < 10; i ++)

m['0'+i] = i;

string sa, sb;

sa = "2015";

int sum = 0;

for(int i = 0; i < sa.length(); i ++)

sum += m[sa[i]];

cout<<"sum = "<

很多時候,需要實現將數字對映為相應的字元

#pragma warning(disable:4786)

#include#include#includeusing namespace std;

int main()

{ mapm;

m[0] = '0';

m[1] = '1';

m[2] = '2';

m[3] = '3';

m[4] = '4';

m[5] = '5';

m[6] = '6';

m[7] = '7';

m[8] = '8';

m[9] = '9';

for(int i = 0; i < 10; i ++)

m['0'+i] = i;

int n = 7;

string s = "the number is: ";

cout<

C STL學習筆記九 map映照容器

include include include 基本操作與set類似,牢記map中所有元素都是pair 對於自定義類,初學者會覺得比較函式如何構造很麻煩,這個可以參照前面的書寫示例 但若設定鍵值為int或char型別,無須構造比較函式 struct student struct strcmp str...

Map映照容器

1 map映照容器 map建立元素插入和遍歷訪問 建立map物件 鍵值與映照資料的型別自己定義 在預設比較函式下 元素的插入按鍵值小到大 include include include include include include include include include include i...

C STL之multimap多重映照容器

multimap與map基本相似,兩者的區別在與,multimap允許插入重複的鍵值。由於允許插入重複的減值,所以multimap與map的元素插入 刪除 查詢有一些不同。multimap物件的建立 元素的插入 可以插入重複的鍵值 pragma warning disable 4786 includ...