c++ qsort 与sort 对结构体排序实例代码
#include<bits/stdc++.h> using namespace std; typedef struct { string book; int num; }Book; //qsort的比较函数 int cmp(const void * a, const void * b) { return (*(Book*)a).num > (*(Book*)b).num ? 1 : 0; } //sort的比较函数 bool cmp_(Book a, Book b) { return a.num > b.num; } int main() { Book Bok[3] = { {"1",4},{"2",2},{"3",3} }; cout << endl << "----------------" << "qsort函数" << endl; qsort(Bok, 3, sizeof(Bok[0]),cmp); for (auto i : Bok) { cout << i.num << endl; } cout << "----------------" << "sort函数" << endl; sort(Bok, Bok + 3, cmp_); for (auto i : Bok) { cout << i.num << endl; } return 0; }
以上就是c++ qsort 与sort 对结构体排序实例代码的详细内容,更多关于c++ qsort 与sort 对结构体排序的资料请关注我们其它相关文章!
相关推荐
-
C++中声明类的class与声明结构体的struct关键字详解
class class 关键字声明类类型或定义类类型的对象. 语法 [template-spec] class [ms-decl-spec] [tag [: base-list ]] { member-list } [declarators]; [ class ] tag declarators; 参数 template-spec 可选模板说明. ms-decl-spec 可选存储类说明有关更多信息 tag 给定于类的类型名称.在类范围内的标记成为了保留字.标志是可选项.如果省略,定义匿名类.
-
C++结构体数组实现贪吃蛇
本文实例为大家分享了C++结构体数组实现贪吃蛇的具体代码,供大家参考,具体内容如下 代码: #include<bits/stdc++.h> #include<windows.h> #include<conio.h> using namespace std; const int h=50,w=50,MaxLen=400; void gotoxy(short y,short x)//光标移动函数 { COORD pos={x,y}; SetConsoleCursorPosi
-
C++基础入门教程(三):数组、字符串、结构体、共用体
今天的标题取得..好严肃的感觉.(小若:咳噗) 这章的内容虽然还是很详(lao)细(dao),但已经开始有很多值得记录的内容了~ 那么,今天就来初次介绍数组与字符串-以及结构体..还有共用体..吧. 1.数组 我记得大四实习的时候,请教同事:"什么是属主?"(其实是和数据库相关的东西) 然后同事惊讶地说道:"啊,你连数组都不知道..这,基础还是要好好补补-呐,数组的意思呢,是这样的-" 我听着听着就不对劲,"等等,这是数组-其实我是问这个属主-"
-
深入剖析C++中的struct结构体字节对齐
什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同.一些平台对某些特定类型的数据只能从某些特定地址开始存取.比如有些架构的CPU在访问一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必须保证
-
C++动态分配和撤销内存以及结构体类型作为函数参数
C++动态分配内存(new)和撤销内存(delete) 在软件开发过程中,常常需要动态地分配和撤销内存空间,例如对动态链表中结点的插入与删除.在C语言中是利用库函数malloc和free来分配和撤销内存空间的.C++提供了较简便而功能较强的运算符new和delete来取代malloc和free函数. 注意: new和delete是运算符,不是函数,因此执行效率高. 虽然为了与C语言兼容,C++仍保留malloc和free函数,但建议用户不用malloc和free函数,而用new和delete运算
-
C++中结构体的类型定义和初始化以及变量引用
C++结构体类型的定义和初始化 有时需要将不同类型的数据组合成一个有机的整体,以供用户方便地使用.这些组合在一个整体中的数据是互相联系的.例如,一个学生的学号.姓名.性别.年龄.成绩.家庭地址等项,都是这个学生的属性,见图 可以看到学号(num).姓名(name).性别(sex).年龄(age).成绩(score ).地址(addr)是与姓名为"Li Fun"的学生有关的.如果在程序中将num,name,sex,age,score,addr分别定义为互相独立的变量,就难以反映出它们之间
-
深入了解C++ 结构体(struct)与共用体(union)
编码运行环境:VS2017+Win32+Debug,Win32表示生成32bits的应用程序. 结构体(struct)与共用体(union)是C语言中就已经存在的数据类型,C++对他们进行了扩充,最大的变化是允许在结构和公用体中定义成员函数.下面将通过实例讲解二者的特性和用法. 1.struct 以下是一个使用了结构体的C++程序. #include <iostream> using namespace std; struct Room { int floor; int No; }; stru
-
C++结构体用法实例分析
本文实例讲述了C++结构体用法.分享给大家供大家参考.具体分析如下: C++结构体提供了比C结构体更多的功能,如默认构造函数,复制构造函数,运算符重载,这些功能使得结构体对象能够方便的传值. 比如,我定义一个简单的结构体,然后将其作为vector元素类型,要使用的话,就需要实现上述三个函数,否则就只能用指针了. 复制代码 代码如下: #include <iostream> #include <vector> using namespace std; struct ST {
-
详解C++中的指针结构体数组以及指向结构体变量的指针
C++结构体数组 一个结构体变量中可以存放一组数据(如一个学生的学号.姓名.成绩等数据).如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组.结构体数组与以前介绍过的数值型数组的不同之处在于:每个数组元素都是一个结构体类型的数据,它们都分别包括各个成员项. 定义结构体数组和定义结构体变量的方法相仿,定义结构体数组时只需声明其为数组即可.如: struct Student //声明结构体类型Student { int num; char name[20]; char sex; i
-
深入解析C++的WNDCLASS结构体及其在Windows中的应用
WNDCLASS是一个由系统支持的结构,用来储存某一类窗口的信息,如ClassStyle,消息处理函数,Icon,Cursor,背景Brush等.也就是说,CreateWindow只是将某个WNDCLASS定义的窗体变成实例.要得到某一窗口的WNDCLASS数据,可以用GetClassLong(); RegisterClass()就是在系统注册某一类型的窗体.也就是将你提供的WNDCLASS数据注册为一个窗口类,在WNDCLASS.lpszClassName中定义该WNDCLASS的标识,无论C
-
详解C++程序中定义struct结构体的方法
什么是结构体? 简单的来说,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型,第二相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同. 结构体的定义 定义结构体使用struct修饰符,例如: struc
随机推荐
- VB6.0 支持鼠标滚轮教程
- MySQL 主主同步配置步骤
- jQuery树形下拉菜单特效代码分享
- js实现星星打分效果的方法
- 深入浅析javascript继承体系
- 详解SpringMVC学习系列之国际化
- 详解Python中的__new__、__init__、__call__三个特殊方法
- 在ASP.NET 2.0中操作数据之七十三:用Managed Code创建存储过程和用户自定义函数(上部分)
- 理解Javascript_13_执行模型详解
- JS中生成随机数的用法及相关函数
- PHP中几种常见的超时处理全面总结
- Python爬取网易云音乐上评论火爆的歌曲
- python检测服务器是否正常
- ASP 连接 SQL SERVER 2008的方法
- php版微信公众平台入门教程之开发者认证的方法
- java运行shell脚本方法示例
- LINUX重启MYSQL的命令详解
- 使用jQuery加载html页面到指定的div实现方法
- 将Java程序与数据库进行连接的操作方法
- 服务器远程连接提示由于协议错误,客户端无法连接到远程计算机