- 1、本文档共95页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【精品课件教案】 第7章 模板与stl
7.4.4 算法 4.sort sort可对指定容器区间内的元素进行排序,默认的排序方式是从小到大 其用法如下: sort(beg,end) [beg, end]是要排序的区间,sort将按从小到大的顺序对该区间的元素进行排序。 * 【例7-21】 利用sort算法对数组和向量进行排序。 //Eg7-21.cpp #includeiostream #includevector #includealgorithm using namespace std; void main(){ int a1[]={10,-20,30,4,50,13,7}; int a2[]={-2,0,30,12,6,7,-9,56,32,78}; sort(a1,a1+7); //排序a1数组 couta1[]: ; for(int i=0;i7;i++) couta1[i]\t; coutendl; vectorint L1; vectorint::iterator pos; for(i=0;i10;i++) L1.push_back(a2[i]); //将a2数组插入到L1链表中 sort(L1.begin(),L1.end()); //排序L1 coutL1: ; for(pos=L1.begin();pos!=L1.end();pos++) cout*pos\t; //输出L1链表中的值 coutendl; } a1[]: -20 4 7 10 13 30 50 L1: -9 -2 0 6 7 12 30 32 56 78 * 7.5 编程实作 STL中的容器和算法不仅适用于内置数据类型,而且同样适用于用户自定义的数据类型。 现在接着本书6.7.2节继续完成comFinal、Account和Chemistry课程结构的程序设计。用list容器存取各个类的对象 过程如下: * 1. 编写主程序 启动VC++ 6.0,选择菜单“文件 | 新建”,建立一个新的“C++ Source File”,文件名为comList.cpp,并在该源文件中输入如下代码: //comList.cpp #includeiostream.h #includelist #includeChemistry.h #includeAccount.h using namespace std; void main(){ listcomFinal* comList; //定义基类comFinla对象的指针链表 listcomFinal*::iterator pos; comFinal com1(阿曼,76,87,90); Account a1(张三星,98,90,97,90,90); Chemistry c1(光红顺,89,80,80,80,80); comList.push_back(com1); //将基类comFinal对象的指针加入链表 comList.push_back(a1); //将派生类Account的对象指针加入链表 comList.push_back(c1); //将派生类Chemitry的对象指针加入链表 for(pos=comList.begin();pos!=comList.end();pos++) (*pos)-show(); //遍历链表,输出各对象的数据成员 } * 7.5 编程实作 在主函数中建立的对象链表如下图所示 * 7.5 编程实作 2. 生成工程文件,加入各个类的程序代码 在VC++建立了comList的工程文件后,将目录C:\course下的comFinal.h、Account.h、Chemistry.h以及comFinal.cpp、Account.cpp、Chemistry.cpp复制到comList.cpp所在的目录中。 选择菜单“工程 | 添加工程 | files”,将上述各类的头文件和源码文件添加到当前工程中。 3.验证程序 编译运行comList程序 * min,max是标准库中已定义的函数模板,所以程序编译会出错。如果把min和max改下名如mymin或者Min就可以了 * 7.4.1 容器 2.List STL中的list是一个双向链表,可以从头到尾或从尾到头访问链表中的节点,节点可以是任意数据类型。链表中节点的访问常常通过迭代器进行。下图是一个链表的
文档评论(0)