根据map中的vaule进行排序呢,注意,value为struct自定义类型
2016-08-09 00:00
465 查看
摘要: C++ map struct value sort
在工作中,经常需要对map中的内容进行排序,对map进行排序呢有两种情况
1 map内部本身就是按序存储的,在插入<key,value>时,就会按照key的大小顺序存储,当然key必须是能够进行大小比较运算的。map默认的排序是从小到大的,如果需要用到从大到小的顺序,那么访问的时候只需要:
for(map<,>::iterator iter = m.end(); m != m.begin(); m-- )
{
.......
}
即可,不需要再进行造轮子。
2 根据value排序,且value是一个struct:
上例子:
typedef struct
{
int a;
string b;
} Test;
这样就实现了对map中按照value进行排序啦
在工作中,经常需要对map中的内容进行排序,对map进行排序呢有两种情况
1 map内部本身就是按序存储的,在插入<key,value>时,就会按照key的大小顺序存储,当然key必须是能够进行大小比较运算的。map默认的排序是从小到大的,如果需要用到从大到小的顺序,那么访问的时候只需要:
for(map<,>::iterator iter = m.end(); m != m.begin(); m-- )
{
.......
}
即可,不需要再进行造轮子。
2 根据value排序,且value是一个struct:
上例子:
typedef struct
{
int a;
string b;
} Test;
struct cmp { bool operator()(const pair<string,Test> &p1, const pair<string,Test> &p2) { return p1.second.a > p2.second.a; //降序 降序的话将 > 改成 < } }; void SortMapByValue(map<string,Test> &t_map,vector< pair<string,Test> >&t_vec ) { for(map<string,Test>::iterator iter = t_map.begin();iter != t_map.end(); iter++) { t_vec.push_back(make_pair(iter->first,iter->second)); } sort(t_vec.begin(),t_vec.end();cmp); //升序 }
这样就实现了对map中按照value进行排序啦
相关文章推荐
- Map根据value进行排序
- 获取map中根据key进行排序的value数据
- java中对map根据value进行排序
- 算法实战:根据Key或Value对Map进行排序及其应用
- 根据value字段对map进行排序
- Java中Map根据键值(key)或者值(value)进行排序实现
- 利用Comparator根据多个Map中某个共同属性的value值对其进行排序
- 对<String,Double>类型的Map根据Value数值由大到小排序
- 根据Map的value值进行排序
- Java中Map根据键值(key)或者值(value)进行排序实现
- Java中Map根据键(Key)或者值(Value)进行排序
- Java中Map根据键值(key)或者值(value)进行排序实现
- 对map根据value进行排序
- 根据value值对map进行排序
- Java中Map根据键值(key)或者值(value)进行排序实现
- Java中Map根据键值(key)或者值(value)进行排序实现
- Java基础 —— 根据 Key 或是 Value 对 Map 进行排序
- Map可根据value的值进行排序
- 算法实战:根据Key或Value对Map进行排序及其应用
- Map根据value进行排序