sort();对结构体数组的排序
sort(); 位于C++
头文件 #include<algorithm>中
数组排序(从小到大,从大到小)
结构体排序(数字参数从大到小...字符串为参数 字典序....)
代码示例:(直接复制运行对比结果看源码)
#include<iostream>
#include<algorithm>
using namespace std;
// 对下文所有函数进行声明
struct node
{
int sum;
char s[10];
} str[10];
int cmpn1(node a,node b)
{
return a.sum>b.sum;
}
int cmpn2(node a,node b)
{
return a.s>b.s;
}
int cmp(int a,int b)
{
return a>b;
}
int main()
{
int a[100]= {1,3,6,9,4,2,3,6,7,10};
//一共10个
cout<<"a数组最初状态\n"<<endl;
for(int i=0; i<10; i++)
cout<<a[i]<<endl;
//需要排序首位置加上需排序的位长
cout<<"默认是从大到小排序\n"<<endl;
sort(a,a+10);
for(int i=0; i<10; i++)
cout<<a[i]<<endl;
cout<<endl;
cout<<"引入cmp()从大到小\n"<<endl;
sort(a,a+10,cmp);
for(int i=0; i<10; i++)
cout<<a[i]<<endl;
cout<<endl;
// 结构体赋值
for(int i=0; i<10; i++)
{
str[i].sum=i;
str[i].s[0]='a'+i;
}
cout<<"以sum为参数 调用cmp1进行从大到小\n"<<endl;
sort(str,str+10,cmpn1);
for(int i=0; i<10; i++)
cout<<str[i].sum<<endl;
cout<<endl;
cout<<"经过sum作为参数排序后,字符串目前状态\n"<<endl;
for(int i=0; i<10; i++)
cout<<str[i].s<<endl;
cout<<endl;
cout<<"以s为参数 调用cmp2进行字典序\n"<<endl;
sort(str,str+10,cmpn2);
for(int i=0; i<10; i++)
cout<<str[i].s<<endl;
cout<<endl;
return 0;
}
sort();对结构体数组的排序的更多相关文章
- 关于priority_queue和sort()对结构体数组的排序
知乎的这个答案很清晰https://www.zhihu.com/question/35736022 #include <iostream> #include <algorithm&g ...
- HDU - 1789 Doing Homework again(贪心) ~~~学了一波sort对结构体排序
题目中因为天数和分数是对应的,所以我们使用一个结构体来存分数和截止如期. 一开始做这道题的时候,很自然的就想到对天数排序,然后天数一样的分数从大到小排序,最后WA了之后才发现没有做到"舍小取 ...
- sort+结构体实现二级排序
之前介绍的sort函数由于其效率较高,使用较为简单让我用起来那叫一个爽,今天再写一篇使用sort+结构体实现二级排序的方法. 还是先想个问题吧,比如我想输入5个同学的名字和身高,然后得到他们身高的降序 ...
- qsort 与sort 对结构体排序实例
qsort 与sort 对结构体排序实例 #include<bits/stdc++.h> using namespace std; typedef struct { string book ...
- golang结构体数组
转自: https://www.liaotaoo.cn/200.html package main import "fmt" type student struct{ id int ...
- C#调用C++DLL传递结构体数组的终极解决方案
在项目开发时,要调用C++封装的DLL,普通的类型C#上一般都对应,只要用DllImport传入从DLL中引入函数就可以了.但是当传递的是结构体.结构体数组或者结构体指针的时候,就会发现C#上没有类型 ...
- 绝对好文C#调用C++DLL传递结构体数组的终极解决方案
C#调用C++DLL传递结构体数组的终极解决方案 时间 2013-09-17 18:40:56 CSDN博客相似文章 (0) 原文 http://blog.csdn.net/xxdddail/art ...
- HDU 2555 陷阱(模拟,结构体数组)
这道题目意思很明白,有不确定的数据沙包和陷阱,还要排序···那就必须要用结构体+数组 /* 在地面上有N 个大小不等的长方形陷阱,每个陷阱的周长各不相同,每个参赛者都有一个沙包,闭上眼睛把它扔向地面, ...
- Problem T: 结构体--学生信息排序
Problem T: 结构体--学生信息排序 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 2219 Solved: 1305[Submit][Sta ...
随机推荐
- js单元测试
最近研究了js的单元测试,分享一下心得. 说起单元测试以前还真是不太了解,这次索性了解一番,测试有很多包含单元测试,性能测试,安全测试和功能测试等几方面,本次只介绍一下单元测试. 前端进行单元测试主要 ...
- H5实现全屏与F11全屏
最近做项目用到全屏,现总结一下全屏: 1.局部全屏:H5全屏和F11有区别,在这种情况下判断全屏只需要通过H5全屏属性,无论全屏后有无滚动条都可判断. /** * [isFullscreen 判断浏览 ...
- linux(ubuntu) 安装composer(PHP用来管理依赖关系的工具 ) 和安装中国全量镜像
https://www.phpcomposer.com/ composer中文网 1:进入安装目录 cd /usr/local/bin 2:下载并安装 sudo curl -s http ...
- 运用了css,js
代码如下: <!DOCTYPE html><html xmlns="http://www.w3.org/1999/html"><head> &l ...
- GMA Round 1 波动函数
传送门 波动函数 f(x)是一个定义在R上的偶函数,f(x)=f(2-x),当$x\in[-1,1]$时,f(x)=cos(x),则函数$g(x)=f(x)-|cos(\pi x)|$,求g(x)在[ ...
- Java读取文本文件中文乱码问题
最近遇到一个问题,Java读取文本文件(例如csv文件.txt文件等),遇到中文就变成乱码.读取代码如下: List<String> lines=new ArrayList<Stri ...
- 全排列筛选(java)
蓝桥杯-全排列筛选(java) 蓝桥杯每年必考全排列筛选,一般为填空题: 可以使用for循环暴力破解,但是代码相对较长,也比较乱,不建议使用: 这里使用递归来解决,代码量相对较少,也很好理解: 如下为 ...
- java代码生成Excel文件3000条自定义属性的的域账户名
一个项目为了测试需要模拟3000条域用户,将数据保存在Excel表格,然后导入到与服务器里. 我们今天要做的是自动生成3000条数据,并将这些数据保存在excel表格里面. 需要jar包:poi-3. ...
- makefile编写
概述 什么是makefile?或许非常多Winodws的程序猿都不知道这个东西,由于那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序猿,makefil ...
- python mysql 单表查询 多表查询
一.外键 变种: 三种关系: 多对一 站在左表的角度: (1)一个员工 能不能在 多个部门? 不成立 (2)多个员工 能不能在 一个部门? 成立 只要有一个条件成立:多 对 一或者是1对多 如果两个条 ...