關聯式容器 map

2021-07-24 13:53:26 字數 1815 閱讀 3795

map的特性是,所有元素都會根據元素的鍵值自動被排序。map的所有元素的型別都是pair,而map的底層就是一顆紅黑樹。它不同set的是,它既有是鍵值(key),排序根據key排序,鍵值保持唯一性,它還具有實值(value),pair既pair的first為key,second為value。我們不能修改key值,但可以修改value因為key值的唯一性。

它的增刪幾乎都應用的迭代器;

map.insert底層過載了三個:

分別為

typedef pairvalue_type;
pairinsert (const value_type& val);
//返回型別為乙個pair::iterator,bool>,引數型別為pair
插入成功bool=1;返回當前插入節點pair
插入失敗bool=0;返回this->end();

iterator insert (iterator position, const value_type& val);
//返回乙個迭代器(既位置),引數型別為1.所指向的位置,2,乙個pair
返回同上

template void insert (inputiterator first, inputiterator last)
//

插一段資料

還有乙個就是operator[ ]的過載:

v& operator (const k& k);
它在庫里實現就是這樣的:
(*((

this

這個一看一長串不好理解,我將它劃分了一下

templatet& ff(map&qap,const k &key)//相當於operator[key];

這樣我們就可以很方方便的修改key值所對應的value了

mapmapll;

ff(mapll,"hh")=99;

cout<(mapll,"hh")<

部分**在下面

標頭檔案map.h

#include#include#includeusing namespace std;

template void mapinsert()

templatevoid value_com()

while ( mymap.value_comp()(*it++, highest) );

}#include"map.h"

int main()

關聯式容器 map和multimap

map的特性是,所有元素都會根據元素的鍵值自動被排序。map的所有元素都是pair,同時擁有實值 value 和鍵值 key pair的第一元素被視為鍵值,第二元素被視為實值。map不允許兩個元素擁有相同的鍵值。我們不能通過map的迭代器修改map的鍵值,但是可以通過迭代器修改map的實值,因為紅黑...

map關聯容器

資料表記錄包含表索引和數值,請對錶索引相同的記錄進行合併,即將相同索引的數值進行求和運算,輸出按照key值公升序進行輸出。輸入描述 先輸入鍵值對的個數 然後輸入成對的index和value值,以空格隔開 輸出描述 輸出合併後的鍵值對 多行 輸入例子 4 0 10 2 1 23 4 輸出例子 0 3 ...

關聯容器map

map是一種key value關聯的容器,第乙個稱為關鍵字,只能在map中出現一次,第二個稱為關鍵字的值。特點 map是一類關聯式容器。它的特點是增加和刪除節點對迭代器的影響很小,除了那個操作節點,對其他的節點都沒有什麼影響。對於迭代器來說,可以修改實值,而不能修改key。1 map是 鍵 值 對的...