map按值排序
来源:互联网 发布:明天妈妈不在知乎 编辑:程序博客网 时间:2024/05/20 23:37
在STL中,map是按键来排序的,但很多时候需要按值来排序。一种方法是将map转化为vector,然后排序。(#add 此法缺点为 map内容没变,而是整个的传给vector了,之后所要用的是vector.或许也不能说是缺点.)
另一个好的方案是 同时做一个反向的map,与之前的map,key value反过来存储.
tool.h
#ifndef TOOL_H
#define TOOL_H
#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <algorithm>
using namespace std;
void sortMapByValue(map<string,int>& tMap,vector<pair<string,int>>& tVector);
#endif
tool.cpp
#include "tool.h"
int cmp(const pair<string,int>& x,const pair<string,int>& y)
{
return x.second<y.second;
}
void sortMapByValue(map<string,int>& tMap,vector<pair<string,int> >& tVector)
{
for(map<string,int>::iterator itor = tMap.begin(); itor != tMap.end(); ++itor)
{
tVector.push_back(make_pair(itor->first,itor->second));
}
sort(tVector.begin(),tVector.end(),cmp);
}
main.cpp
#include "tool.h"
int main()
{
map<string,int> tMap;
tMap["你好"]=10;
tMap["他好"]=5;
tMap["我好"]=15;
vector<pair<string,int>> tVector;
sortMapByValue(tMap,tVector);
for(int i=0;i<tVector.size();i++)
{
cout<<tVector[i].first<<": "<<tVector[i].second<<endl;
}
system("PAUSE");
return 0;
}
- map按值排序
- map按值排序
- Map 按值排序
- map按值排序
- map按值排序
- map按值排序
- Map按值排序
- STL map 按值排序
- STL map 按值排序
- Map按值进行排序
- java Map 按值排序
- map 按键按值排序
- Map排序---按value值排序
- Map排序及HashMap按键排序和按值排序
- Map 按值排序 (Map sort by value) - Java
- Map 按值排序 (Map sort by value) - Java
- 如何对于Map类型按值排序
- 将map按值进行排序
- linux进程控制
- STL常用技巧
- pinyin4j的使用
- OOD三个设计原则:SRP(单一职责原则)、OCP(开闭原则)、LSP(Liskov替换原则)
- (文章)AC上路的目录
- map按值排序
- Oracle 创建序列
- (文章)图论的目录
- replace()与replaceAll()的区别
- STL中常用的一些算法函数[持续更新]
- CArray,CList,CMap如何实化(实例化,instantiation)
- 常用googlecode网站
- 疱疹性结膜炎
- (文章)博弈的目录