C++实用技巧与模版库.ppt

C++实用技巧与模版库.ppt

ID:58386448

大小:437.00 KB

页数:50页

时间:2020-09-07

C++实用技巧与模版库.ppt_第1页
C++实用技巧与模版库.ppt_第2页
C++实用技巧与模版库.ppt_第3页
C++实用技巧与模版库.ppt_第4页
C++实用技巧与模版库.ppt_第5页
资源描述:

《C++实用技巧与模版库.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八章C++实用技巧与模版库在本章中将介绍各种各样实用的提高我们编程效率的小技巧和模版库。其中绝大多数依靠C++自带类和函数实现。第一节排序算法排序算法为竞赛中最常用的算法之一,我们可以利用C++自带的库函数进行排序。使用排序算法必须包含algorithm头文件自带排序算法的一般形式为://将数组arr的下标为m的元素到下标为n-1的元素进行从小到大排序sort(arr+m,arr+n);sort(arr+m,arr+n,comp);//与sort(arr+m,arr+n);相比,这个//写法可以自己定义排序的规则//其中,comp为自定义的函数对于sort(

2、arr+m,arr+n)我们举个简单的例子://这个程序实现从键盘读入10个数,然后从小到大输出的功能#include#includeusingnamespacestd;inta[10];intmain(){for(inti=0;i<10;++i)cin>>a[i];sort(a+0,a+10);for(inti=0;i<10;++i)cout<

3、用sort(arr+n,arr+m,comp)之前我们需要自己写个comp函数。从大到小排序的comp函数可以这样写:intmy_comp(constint&a,constint&b){returna>b;//在两元素相同时一定要返回0或者false}//comp函数的名字是由我们自己决定的,例如可以叫//cat_cat,dog_dog等等//程序实现从键盘读入10个数,然后从大到小输出的功能#include#includeusingnamespacestd;inta[10];intmy_comp(constint&a

4、,constint&b){returna>b;//如果a>b则返回1,否则返回0}intmain(){for(inti=0;i<10;++i)cin>>a[i];sort(a+0,a+10,my_comp);for(inti=0;i<10;++i)cout<

5、第二个成员为第二关键字,……,第N个元素为第N关键字,然后从小到大排序。例如我们要将学生的成绩从大到小排序,当成绩相同时,根据姓名字典序小的优先的规则排进行序。显然我们无法采用默认规则进行排序。这时我们可以定义这样的comp:intscore_comp(conststudent&a,conststudent&b){if(a.score>b.score)return1;if(a.score

6、老师发现学生数目庞大,所以找来了会编程的你,并且它给你了全部同学的分数,希望你能按如下规则排序:1.分数高的排在前面;2.如果分数相同,就把名字字典序低的放在前面。【输入格式】第一行一个整数n接下来n行每行一个学生名字和一个分数。【输出格式】每行一个名字和一个分数【输入样例】3Xiaoxiao396Yingmo405Diyucailang399【输出样例】Yingmo405Diyucailang399Xiaoxiao396【参考程序】#include#include#includeusingnamesp

7、acestd;structstudent{intscore;stringname;}a[100];intn;intscore_comp(conststudent&a,conststudent&b){if(a.score>b.score)return1;if(a.score>n;for(inti=0;i>a[i].name;cin>>a[i].score;}sort(a+0,a+n,score_comp);fo

8、r(inti=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。