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....