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 ...
 
随机推荐
- node爬取html乱码
			
var http = require('http'), iconv = require('iconv-lite'); http.get("http://website.com/", ...
 - numpy的索引-【老鱼学numpy】
			
简单的索引值 import numpy as np a = np.arange(3, 15).reshape(3, 4) print("a=") print(a) print(&q ...
 - WPF中的逻辑树和可视化树
			
WPF中的逻辑树是指XAML元素级别的嵌套关系,逻辑树中的节点对应着XAML中的元素. 为了方便地自定义控件模板,WPF在逻辑树的基础上进一步细化,形成了一个“可视化树(Visual Tree)”,树 ...
 - [Doc]MongoDB用户创建与启用access-control
			
文档链接:https://docs.mongodb.com/manual/tutorial/enable-authentication/ Pre 个人总感觉数据库的文档结构不太友好, 不太解决问题.以 ...
 - python学习:删除空白
			
删除空白 删除尾部空白 确保字符串尾部没有空白,使用rstrip(); 删除字符串开头的空白,使用lstrip(); 同时删除字符串两端的空白,使用strip() 代码: >>> ...
 - vee-validate的使用
			
官网地址:http://vee-validate.logaretm.com/ 这是一个插件Vue.js可以验证输入字段,显示错误,在一个简单而强大的方法.学习vee-validate,首先可以去阅读官 ...
 - 关于finally代码块是否一定被执行的问题
			
一般来说,只要执行了try语句,finally就会执行 但是,有以下几种情况需要特殊考虑 具体例子看链接 点击这里 第一点 try代码块没有被执行,意思就是错误在try代码块之前就发生了. 第二点 ...
 - Nmap 进阶使用 [ 脚本篇 ]
			
0×01 前言 因为今天的重点并非nmap本身的使用,主要还是想借这次机会给大家介绍一些在实战中相对比较实用的nmap脚本,所以关于nmap自身的一些基础选项就不多说了,详情可参考博客端口渗透相关文章 ...
 - stm32直流电机驱动与测速代码配套视频资料
			
说实话就现在的市场应用中stm32已经占到了绝对住到的地位,51已经成为过去式,32的功能更加强大,虽然相应的难度有所增加,但是依然阻止不了大家学习32的脚步,不说大话了这些大家都懂要不然也不会学习s ...
 - memory error python报错
			
np.array时报错内存溢出,检查了python安装的是64位版本,通过下面dtype=np.uint8不再报错texts_vec = (np.array(texts_vec,dtype=np.ui ...