STL容器 對map排序

2021-09-07 04:09:58 字數 1029 閱讀 8810

stl容器(三)——對map排序

對於map的排序問題,主要分為兩部分:根據key排序;根據value排序。下面我們就分別說一下~

map預設按照key進行公升序排序 ,和輸入的順序無關。如果是int/double等數值型為key,那麼就按照大小排列;如果是string型別,那麼就按照字串的字典序進行排列~ (還記得之前說過的字典序嗎?當時我們用到了next_permutation這個庫函式!)下面我們展示乙個例子,說明map中預設按照key公升序排列 的情況。

example 1: 預設按照key公升序排序#include#include#include#includeusing namespace std;

int main()

};int main()

};int main()

{ mapscoremap; //這邊呼叫cmp

map::iterator iter;

scoremap["limin"] = 90;

scoremap["zzihsf"] = 95;

scoremap["kim"] = 100;

scoremap.insert(map::value_type("jack", 88));

vectorscorevector;

for(iter=scoremap.begin(); iter!=scoremap.end();iter++) //這邊本來是使用vector直接初始化的,當時由於vc 6.0 編譯器問題,只能這樣寫,而且還有非法記憶體。。

scorevector.push_back(*iter);

//轉化為pair的vector

sort(scorevector.begin(), scorevector.end(), cmp()); //需要指定cmp

for(int i=0; i<=scorevector.size(); i++) //也要按照vector的形式輸出

cout<< scorevector[i].first<<' '這樣我們就把map的排序:按照key排序;按照value排序都說好了~

STL容器類map學習

map類定義了乙個關聯容器,並且在容器中使用唯一的關鍵字 任何兩個元素的鍵都不相同 來對映相應的值。從本質上來說,關鍵字就是值的名字。在map物件中儲存了乙個值之後,就可以通過關鍵字來獲得它。map物件是一系列關鍵字 值的匹配對。map的主要功能在於 只有你知道了乙個值的關鍵字,就能夠找到這個值。例...

STL關聯容器之map

map和set一樣,也是一種關聯容器,內部也是使用紅黑樹作為底層的實現結構。但是不同的是,map的鍵值和實值可以是不一樣的。map與set的查詢操作本質上是一樣的,沒有特殊的地方。map使用鍵值排列元素的位置,因而也不允許插入相同鍵值的元素,插入演算法返回pair iterator,bool 分別指...

STL之map容器和multimap容器

所有元素都會根據元素的鍵值自動排序。map所有的元素都是pair,同時擁有實值和鍵值,pair的第一元素被視為鍵值,第二元素被視為實值,map不允許兩個元素有相同的鍵值。map的鍵值關係到map元素的排列規則,任意改變map鍵值將會嚴重破壞map組織。如果想要修改元素的實值,那麼是可以的。map和l...