c++map的遍历和按照key,value排序
map的遍历
1 2 3 4 5
| map<int, int>ma; map<int, int>::iterator it; for(it = ma.begn(); it != ma.end(); it++){ cout << it->first << ' ' << it->second << "\n"; }
|
c++ map 默认按照key值排序 按照值排序
方法: 将key的value储存在pair类型的vector 中, 按照vector排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| bool cmp(const pair<int,int> &p1,const pair<int,int> &p2) { return p1.second < p2.second; } int main(){ map<int,int> mp; mp[1]=4; mp[2]=3; mp[3]=2; mp[4]=1; vector<pair<int,int> > arr; for (map<int,int>::iterator it=mp.begin();it!=mp.end();it++){ cout<< it->first << '\t' << it->second << "\n"; arr.push_back(make_pair(it->first,it->second)); } sort(arr.begin(), arr.end(), cmp); for (vector<pair<int,int> >::iterator it=arr.begin();it!=arr.end();it++){ cout << it->first << '\t' << it->second << "\n"; } return 0; }
|
1
| 恰似你一低头的温柔,较弱水莲花不胜寒风的娇羞, 我的心为你悸动不休。
|