用sort 排序 struct

+++

//method 1
struct node{
int k,s;
}p[5005]; bool cmp1(node x,node y){
return x.s>y.s; //定义降序排序(从大到小)
}
bool cmp2(node x,node y){
return x.k<y.k; //定义升序排序(从小到大)
}sort(p+1,p+n+1,cmp2); //排序
eg:
#include<iostream>
#include<algorithm> using namespace std; struct b {
int k, s;
}; bool compare(b x, b y)
{
if (x.k != y.k) return x.k > y.k;
return x.s > y.s;//降序排序
} int main()
{
b p[5] = { {2, 4}, {2, 8}, {5, 9}, {1, 4}, {2, 5} };
sort(p, p + 5, compare);//point
for (auto x : p)
cout << x.k << " " << x.s << endl;
system("pause");
return 0;
}
//method 2
struct b {
int k, s;
bool operator< (const b & t)const//实现降序排序
{
if (k != t.k) return k < t.k;
return s < t.s;
}
};
eg:
#include<iostream>
#include<algorithm> using namespace std; struct b {
int k, s;
bool operator< (const b & t)const
{
if (k != t.k) return k < t.k;
return s < t.s;
}
}; int main()
{
b p[5] = { {2, 4}, {2, 8}, {5, 9}, {1, 4}, {2, 5} };
sort(p, p + 5);//参数只需要两个迭代器,不需要第三个参数
for (auto x : p)
cout << x.k << " " << x.s << endl;
system("pause");
return 0;
}

用sort实现对struct的排序的更多相关文章

  1. Hadoop 实现对Value倒序排序

    数据源 A B C D Z 要实现的输出 Z D B C A 看字符顺序,其实什么也没有,只是按照后面的数字进行一次倒序排序,实现思路,1利用hadoop自带的排序功能,2.KV互换 实现代码 pub ...

  2. C++中实现对map按照value值进行排序 - 菜鸟变身记 - 51CTO技术博客

    C++中实现对map按照value值进行排序 - 菜鸟变身记 - 51CTO技术博客 C++中实现对map按照value值进行排序 2012-03-15 15:32:36 标签:map 职场 休闲 排 ...

  3. 使用泛型实现对int数组或者String数组进行排序

    因为是使用的泛型,我们并不确定数据类型, 对于数据的比较就不能用平时的大于或者小于. 我们需要比较对象实现Comparable接口,该接口下的compareTo()方法可以用来比大小 定义Sort类: ...

  4. C#代码实现对HTTP POST参数进行排序

    private static string GetSortedParas(Dictionary<string, string> dic) { dic = dic.OrderBy(key = ...

  5. 使用代理实现对C# list distinct操作

    范型在c#编程中经常使用,而经常用list 去存放实体集,因此会设计到对list的各种操作,比较常见的有对list进行排序,查找,比较,去重复.而一般的如果要对list去重复如果使用linq dist ...

  6. 在应用程序中实现对NandFlash的操作

    以TC58NVG2S3ETA00 为例: 下面是它的一些物理参数: 图一 图二 图三 图四 图五 图6-0 图6-1 说明一下,在图6-1中中间的那个布局表可以看做是实际的NandFlash一页数据的 ...

  7. sort+结构体实现二级排序

    之前介绍的sort函数由于其效率较高,使用较为简单让我用起来那叫一个爽,今天再写一篇使用sort+结构体实现二级排序的方法. 还是先想个问题吧,比如我想输入5个同学的名字和身高,然后得到他们身高的降序 ...

  8. <algorithm>里的sort函数对结构体排序

    题目描述 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签到.签离记录,请根据记录找出当天开门和关门的人. 输入描述: 每天的记录在第一行给出记录的条目数M (M &g ...

  9. 实现对DataGird控件的绑定操作

    //实现对DataGird控件的绑定操作 function InitGrid(queryData) { $('#grid').datagrid({ //定位到Table标签,Table标签的ID是gr ...

随机推荐

  1. Linux文件和目录的属性及权限总结

    本文讲述的是文件或目录的属性及权限,比如索引节点inode.文件类型.文件权限及属主:还对setuid.setgid及粘贴位进行了相关的讲解.其中,对ln.chmod.chown.chgrp.umas ...

  2. 死磕mysql(4)

    想把论坛和博客上所有关于mysql的都看一遍,死磕到底 看到关于数据库快照的东西.......不懂,百度......然后就跑题了,看到了表锁这种东西unlock tables; 用来锁定表..... ...

  3. winsocket入门学习

    参考资料:http://c.biancheng.net/cpp/socket/ http://www.winsocketdotnetworkprogramming.com/ socket 是" ...

  4. Qt qApp

    qApp A global pointer referring to the unique application object. It is equivalent to the pointer re ...

  5. 命令行压缩解压缩一 7z

    命令行压缩解压缩一 7z  1) 简介  7z,全称7-Zip, 是一款开源软件.是目前公认的压缩比例最大的压缩解压缩软件.  主页:http://www.7-zip.org/  中文主页:http: ...

  6. Shell: 定期存档日志文件

    简介 对于日志的分割删除我们一般会使用logratate,但对于项目较多的情况下,会让开发直接将日志分割写在代码里面,对于分割后过期的日志定期删除就很有必要,不然膨胀的日志会占满你的磁盘,将多余的日志 ...

  7. github三步走(init;add . ;commit -m "提交说明")

    掌握以下几点就基本能满足你平时使用了.按这个顺序来1.git安装,已经好了,略 -到这里本地代码推送到远程已经结束了 2.git本地命令操作-shift+右键-git init:初始化git环境-新建 ...

  8. bash通配符 shell正则表达式

    在linux中 通配符是系统命令使用,一般用来匹配文件名或者什么的用在系统命令中. 通配符是系统级别的,通配符多用在文件名上,比如查找find,ls,cp,rm 正则表达式是操作字符串,以行尾单位来匹 ...

  9. Shell脚本 硬盘监控

    用shell 写了一个硬盘监控的小程序   #!/bin/bash MAX=95 EMAIL=zonghua@iyunshu.com PART=sda1   IP=`ifconfig |grep -w ...

  10. Linux的那些事-系统启动(增加开机启动项)

    1   /etc/init.d 2   /etc/inittab 3   /etc/rc.d/init.d  1.   /etc/init.d 是一般开机的启动服务存放在这个目录下,至于实现机制,其实 ...