c STL map入門總結

2021-10-05 15:27:34 字數 2901 閱讀 5038

1. 定義乙個map : mapmp ,

type1是對映前的型別(鍵key),typename2是對映後的型別

(值 value),mp為對映的名字。

2.map表達對映關係 , 其實陣列也是一種對映

例如 int a[100] 定義了int 到 int 的對映關係

a[5]=10 ,將 5 與10 建立了 5 到對映到10 關係

但是 map 可以對映 任何基本型別 (包括stl 容器)

mapint>mp ;

// 將string 對映為 int

mapmp;

// 將string 對映為 string

mapint>

,string >mp;

// 將set容器 對映到string

1.通過下標訪問

#include

#include

#include

#include

// 使用map 的必要標頭檔案

using

namespace std;

intmain()

// 輸出結果為 100

2.通過迭代器訪問 (重中之重)

map

::iterator it;

//正向迭代,從第乙個鍵元素開始訪問

type1和type2就是定義map時填寫的型別,這樣就得到了迭代器it

通過 使用it->first來訪問鍵,用it->second來訪問值。// map《鍵,值》mp

#include

#include

#include

#include

using

namespace std;

intmain()

return0;

}/*輸出結果:

1 abc

2 acf

*/

3.反向迭代器 (一般不用)

map

:: reverse_iterator it;

// 反向迭代,從最後的鍵 訪問

it->

rbegin()

, it-

>

rend()

;

#include

#include

#include

#include

using

namespace std;

intmain()

return0;

}/*輸出結果:

2 acf

1 abc

*/

begin

() 返回指向map頭部的迭代器

end(

) 返回指向map末尾的迭代器

clear

() 刪除所有元素

empty

() 判斷map是否為空,如果map為空則返回true

size

() 返回map中元素的個數

find

() 查詢乙個元素的鍵值, 返回該元素的迭代器

//rbegin() 返回乙個指向map尾部的逆向迭代器

//rend() 返回乙個指向map頭部的逆向迭代器

舉例 :find()的使用;

#include

#include

#include

#include

#include

using

namespace std;

intmain()

/*輸出結果:

a 40

*/

特點:map會以鍵(key)從小到大的順序自動排序

這是由於map內部是使用紅黑樹實現的(set也是).

mapint>mp;  鍵為string型, map內資料順序 會按 字典序 從小到大

map<

int,

int>mp1; 鍵為int 型, map內資料順序 會按 整數值 從小到大

解決問題:

(1)需要建立字元(串)與整數之間對映的題目

(2)判斷大整數(比如 幾千位的數)或者其他型別的資料是否存在的題目,

可以把map當bool陣列使用(雜湊表)

(3)字串和字串的對映

(4)建立較大整數與較大整數的聯絡 mapmp;

顯然無法用陣列開到 long long 的 空間大小

下面例子的核心 : 將外層 的 it1->second 變成內層 迭代器的 開始

mapint>

>mp;

// 在map 中巢狀 乙個map容器

mapint>

>

::iterator it1;

// 外層迭代器

for(it1=mp.

begin()

;it1!=mp.

end(

);it1++

)// 遍歷方式

}

C STL map用法總結

map是stl的乙個關聯容器,它提供一對一的hash。第乙個可以稱為關鍵字 key 每個關鍵字只能在map 現一次 第二個可以稱為該關鍵字的值 value map以模板 泛型 方式實現,可以儲存任意型別的資料,包括使用者自定義的資料型別。map主要用於一對一對映 one to one 的情況,map...

C STL map容器詳解

作為關聯式容器的一種,map 容器儲存的都是 pair 物件,也就是用 pair 類模板建立的鍵值對。其中,各個鍵值對的鍵和值可以是任意資料型別,包括 c 基本資料型別 int double 等 使用結構體或類自定義的型別。通常情況下,map 容器中儲存的各個鍵值對都選用 string 字串作為鍵的...

c STL map學習筆記

構造 map int,int s 操作 操作函式 插入元素並返回該元素的位置 s.insert 元素 刪除map容器中的所有的元素 s.clear 判斷map容器是否為空 s.empty 返回當前map容器中的元素個數 s.size 容器中指定關鍵字的元素個數 s.count 在容器中查詢元素 s....