c++ 11 map基础value排序

来源:互联网 发布:淘宝知识侵权 编辑:程序博客网 时间:2024/06/06 09:44
本身是不支持的,但是可以用其他方法制作出来,参考了下别人的资料
发现缺少说明,这次转过来只是加个说明

#include  algorithm》
//pair类型定义 
typedef pair PAIR;

//排序对比函数
int cmp(const PAIR &x, const PAIR &y) 
{  
     return x.second > y.second;  
}  

std::vector《PAIR》 pair_vec;//排序用的vector对象(原文少了这个)

//将要排序的map数据遍历并将其值插入到vector对象内
for (map::iterator map_iter = map_verb.begin(); map_iter !=map_verb.end(); ++map_iter)  
{  
      pair_vec.push_back(make_pair(map_iter->first,map_iter->second));  
}

//对vector进行排序
sort(pair_vec.begin(), pair_vec.end(),cmp); 

//排序结果输出
for (vector::iterator curr = pair_vec.begin(); curr !=pair_vec.end(); ++curr)  
{  
     outfile << curr->first << "\t" <<curr->second << endl;  
}  

转自:http://blog.csdn.net/glp_hit/article/details/8109594