C 學習筆記 STL multimap

2021-06-02 00:36:29 字數 1297 閱讀 6252

multimap提供了可以一種可以有重複鍵值的stl map型別。其插入方式和map相似,但是由於可以擁有重複鍵值所以在查詢方面有些不同。

查詢

1. 直接找到每種鍵值的所有元素的第乙個元素的游標。

通過函式:lower_bound( const keytype& x ), upper_bound( const keytype& x ) 可以找到比指定鍵值x的小的鍵值的第乙個元素和比指定鍵值x大的鍵值的第乙個元素。返回值為該元素的游標。

細節:當到達鍵值x已經是最大時,upper_bound返回的是這個multimap的end游標。同理,當鍵值x已經是最小了,lower_bound返回的是這個multimap的begin游標。

2. 指定某個鍵值,進行遍歷

可以使用上面的lower_bound和upper_bound函式進行遊歷,也可以使用函式equal_range。其返回的是乙個游標對。游標對pair::first是由函式lower_bound得到的x的前乙個值,游標對pair::second的值是由函式upper_bound得到的x的後乙個值。

樣例如下:

multimapa;

a.insert(pair(1,11));

a.insert(pair(1,12));

a.insert(pair(1,13));

a.insert(pair(2,21));

a.insert(pair(2,22));

a.insert(pair(3,31));

a.insert(pair(3,32));

multimap

<

int,

int>

::iterator p_map;

pair

<

multimap

<

int,

int>

::iterator, multimap

<

int,

int>

::iterator

>

ret;

for

(p_map

=a.begin() ; p_map

!=a.end();

)

結果:1 => 11 12 13

2 => 21 22

3 => 31 32

C 學習筆記( )

一 語法 迴圈 foreach 型別識別符號 in 表示式 code 用法 例子int temp foreach int num in temp 每次從temp取乙個元素賦給num直至取完 console.writeline n num 每行顯示乙個元素 執行結果 c 中唯讀 只寫控制 class ...

C 學習筆記

1.函式特徵 有函式頭和函式體 接受乙個引數 返回乙個值 需要乙個原型。2.c 命名規則 在名稱中只能使用字母字元 數字和下劃線 名稱的第乙個字元不能是數字 區分大寫字母和小寫字母 不能將c 關鍵字用作名稱 以兩個下劃線或下劃線和大寫字母打頭的名稱被保留給實現 編譯器及其使用的資源 使用,以乙個下劃...

c 學習筆記

屬性 屬性開頭字母大寫 屬性可以判斷輸入的非法值 屬性本身不儲存值 依靠字段 索引器 using system using system.collections.generic using system.linq using system.text namespace b try catch exc...