```
#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
using namespace std; /*按key升序*/
void test01(){
map<string,int,less<string> > map1;
map1.insert(pair<string,int>("aba",));
map1.insert(pair<string,int>("aaa",));
map1.insert(pair<string,int>("ddd",));
map1.insert(pair<string,int>("ccc",)); for(map<string,int>::iterator it=map1.begin(); it!=map1.end(); it++ ){
cout<<(*it).first<<" : "<<(*it).second<<endl;
}
}
/*按key降序*/
void test02(){
map<string,int,greater<string> > map1;
map1.insert(pair<string,int>("aba",));
map1.insert(pair<string,int>("aaa",));
map1.insert(pair<string,int>("ddd",));
map1.insert(pair<string,int>("ccc",)); for(map<string,int>::iterator it=map1.begin(); it!=map1.end(); it++ ){
cout<<(*it).first<<" : "<<(*it).second<<endl;
}
}
/*----------------------------------------------------*/
/*编写类或者结构体按key升序或者降序*/
class flag{
public:
bool operator()(string v1,string v2){
return v1<v2;
}
}; void test03(){
map<string,int,flag> map1;
map1.insert(pair<string,int>("aba",));
map1.insert(pair<string,int>("aaa",));
map1.insert(pair<string,int>("ddd",));
map1.insert(pair<string,int>("ccc",)); for(map<string,int>::iterator it=map1.begin(); it!=map1.end(); it++ ){
cout<<(*it).first<<" : "<<(*it).second<<endl;
}
}
/*-------------------------------------------------------*/
/*自定义编写类或者函数或者结构体进行值排序*/
/*自定义函数编写不用(),自定义类或者结构体需要()*/
bool flag_2(pair<string,int> o1,pair<string,int> o2){
return o1.second>o2.second;
}
class flag_2{
public:
bool operator()(pair<string,int> o1,pair<string,int> o2){
return o1.second>o2.second;
}
};
struct flag_2{
bool operator()(pair<string,int> o1,pair<string,int> o2){
return o1.second<o2.second;
}
};
void test04(){
map<string,int> map1;
map1.insert(pair<string,int>("aba",));
map1.insert(pair<string,int>("aaa",));
map1.insert(pair<string,int>("ddd",));
map1.insert(pair<string,int>("ccc",)); //利用vector进行value排序
vector< pair<string,int> > dic1(map1.begin(),map1.end());
sort(dic1.begin(),dic1.end(),flag_2()); for(int i=; i<dic1.size(); i++ ){
cout<<dic1[i].first<<" "<<dic1[i].second<<endl;
}
}
int main(){
//test01();
//test02();
//test03();
test04(); return ;
} ```

c++中map按key和value排序的更多相关文章

  1. JAVA中对List<map<String,Object>>根据map某个key值进行排序

    方法compareTo()比较此对象与指定对象的顺序.如果该对象小于.等于或大于指定对象,则分别返回负整数.零或正整数.返回整数,1,-1,0:返回1表示大于,返回-1表示小于,返回0表示相等. 普通 ...

  2. JAVA中对list map根据map某个key值进行排序

    package test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; ...

  3. list中map 的value值时间排序

    public static void main(String[] args) { String sys=DateUtil.getTime().substring(0,5); System.out.pr ...

  4. map的key 为指针

    STL中map的key能否用char *呢?当然可以! 在程序中需要用到一个map,本来是这样写的,map<string, int> mapStr; 为了追求效率,把string改成了ch ...

  5. JS中map list 数组的迭代

    后台传给前台一个map 前台如何迭代呢 $.post("getSys.jhtml", function(data){ var temp = ""; $.each ...

  6. C++ STL中Map的按Key排序和按Value排序

    map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区 分),我们用map来进 ...

  7. C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET

    C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET C++ STL中Map的相关排序操作:按Key排序和按Value排序 分类: C ...

  8. Java中Map根据键值(key)或者值(value)进行排序实现

    我们都知道,java中的Map结构是key->value键值对存储的,而且根据Map的特性,同一个Map中 不存在两个Key相同的元素,而value不存在这个限制.换句话说,在同一个Map中Ke ...

  9. C++ STL中Map的按Key排序跟按Value排序

    C++ STL中Map的按Key排序和按Value排序 map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定 ...

随机推荐

  1. Spring.profiles多环境配置最佳实践

    转自:https://www.cnblogs.com/jason0529/p/6567373.html Spring的profiles机制,是应对多环境下面的一个解决方案,比较常见的是开发和测试环境的 ...

  2. SQL Server连接错误1326

    全新的SQL Server 2017,在2018年末才安装上,不过使用它来管理并不复杂的几张表,占用相对较多服务器资源,确实是有些大材小用. 无论如何,安装还是比较顺利.记得2012年第一次安装SQL ...

  3. IDependency自动注册autofac

    ContainerBuilder builder = new ContainerBuilder(); builder.RegisterGeneric(typeof(Repository<,> ...

  4. cas 资源

    http://blog.sina.com.cn/s/blog_6fda308501012tk2.html http://www.blogjava.net/xmatthew/archive/2008/0 ...

  5. iOS 创建一个App目录结构

    Class:存放的是App中所有的模块功能 Base:存放一些基类,比如BaseViewController,BaseModel等,共性直接在基类中去修改 Vendor:三方,因为我的项目中使用coc ...

  6. JSP 性能优化

    无论当前 JavaScript 代码是内嵌还是在外链文件中,页面的下载和渲染都必须停下来等待脚本执行完成.JavaScript 执行过程耗时越久,浏览器等待响应用户输入的时间就越长.浏览器在下载和执行 ...

  7. input框触发回车事件

    window.event只能在IE下运行,不能在firefox下运行,这是因为firefox的event只能在事件发生的现场使用.   在firefox里直接调用event对象会报undefined. ...

  8. Visual Studio 由于缺少调试目标

    问题背景 Visual Studio启动winform项目时提示:由于缺少调试目标,Visual Studio 无法开始调试. 解决方法 解决方案配置 → 配置管理器 → 勾选[生成]选项 End C ...

  9. Java多线程并发最佳实践

    使用本地变量 尽量使用本地变量,而不是创建一个类或实例的变量. 使用不可变类 String.Integer等.不可变类可以降低代码中需要的同步数量. 最小化锁的作用域范围:S=1/(1-a+a/n) ...

  10. IIS7 配置 PHP5.6

    环境: 操作系统:Win7 & 10 (x64) 中文专业版 PHP       :V5.6 首先添加IIS. 控制面板-〉程序-〉打开或关闭Windows功能 1. 勾选"Inte ...