通过c++的sort函数实现成绩排序功能
sort函数用于C++中,对给定区间所有元素进行排序,默认为升序,也可进行降序排序。sort函数进行排序的时间复杂度为n*log2n,比冒泡之类的排序算法效率要高,sort函数包含在头文件为#include
题目描述:
有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母排序,如果姓名的字母序也相同,则按照学生的年龄排序,并输出N个学生排序后的信息。
#include#include #include usingnamespacestd; structE{ charname[101]; intage; intscore; }buf[1000]; boolcmp(Ea,Eb){ if(a.score!=b.score)returna.score 注意事项
scanf和scanf_s区别使用,scanf_s需要标明缓冲区的大小,因而多出一个参数。Unlikescanfandwscanf,scanf_sandwscanf_srequireyoutospecifybuffersizesforsomeparameters.Specifythesizesforallc,C,s,S,orstringcontrolset[]parameters.Thebuffersizeincharactersispassedasanadditionalparameter.Itimmediatelyfollowsthepointertothebufferorvariable.Forexample,ifyou'rereadingastring,thebuffersizeforthatstringispassedasfollows:
chars[10]; scanf_s("%9s",s,(unsigned)_countof(s));//buffersizeis10,widthspecificationis9微软参考文档
结果
通过运算符重载来实现
#include#include #include usingnamespacestd; structE{ charname[101]; intage; intscore; booloperator<(constE&b)const{ if(score!=b.score)returnscore 由于已经指明了结构体的小于运算符,计算机便知道了该结构体的定序规则。sort函数只利用小于运算符来定序,小者在前。于是,我们在调用sort时便不必特别指明排序规则(即不使用第三个参数)。
总结
到此这篇关于通过c++的sort函数实现成绩排序的文章就介绍到这了,更多相关c++sort函数内容请搜素毛票票以前的文章或下面相关文章,希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。