网站大量收购独家精品文档,联系QQ:2885784924

第10章-泛型程序设计与C++标准模板库.pptVIP

第10章-泛型程序设计与C++标准模板库.ppt

  1. 1、本文档共98页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第十章泛型程序设计

与C++标准模板库;目录;10.1.1泛型程序设计的基本概念;10.1.2STL简介;10.1.2STL简介;STL的组成部分;10.2.1输入流迭代器和输出流迭代器;例10-2从标准输入读入几个实数,分别将它们的平方输出;10.2.2迭代器的分类;迭代器支持的操作;10.2.3迭代器的区间;例10-3综合运用几种迭代器的示例;例10-3(续);10.2.4迭代器的辅助函数;10.3容器的基本功能与分类;10.3容器的基本功能与分类(续);容器的通用功能;可逆容器、随机访问容器;10.4.1顺序容器的基本功能;例10-4顺序容器的基本操作;例10-4(续);例10-4(续);10.4.2三种顺序容器的特性

——向量(Vector);双端队列(deque);例10-5奇偶排序;列表(list);例10-6列表容器的splice操作;例10-6(续);三种顺序容器的比较;10.4.3顺序容器的插入迭代器;10.4.4顺序容器的适配器;例10-7利用栈反向输出单词;优先级队列;//10.8.cpp,头部分省略

constintSPLIT_TIME_MIN=500;//细胞分裂最短时间

constintSPLIT_TIME_MAX=2000;//细胞分裂最长时间

?

classCell;

priority_queueCellcellQueue;

?

classCell{ //细胞类

private:

staticintcount; //细胞总数

intid; //当前细胞编号

inttime; //细胞分裂时间

public:

Cell(intbirth):id(count++){ //birth为细胞诞生时间

//初始化,确定细胞分裂时间

time=birth+(rand()%(SPLIT_TIME_MAX-SPLIT_TIME_MIN))+SPLIT_TIME_MIN;

}

intgetId()const{returnid;} //得到细胞编号

intgetSplitTime()const{returntime;} //得到细胞分裂时间

booloperator(constCells)const{returntimes.time;}//定义“”

?

;//细胞分裂

voidsplit(){

Cellchild1(time),child2(time); //建立两个子细胞

couttimes:Cell#idsplitsto#

child1.getId()and#child2.getId()endl;

cellQueue.push(child1); //将第一个子细胞压入优先级队列

cellQueue.push(child2); //将第二个子细胞压入优先级队列

}

};

intCell::count=0;

?

intmain(){

srand(static_castunsigned(time(0)));

intt; //模拟时间长度

coutSimulationtime:;

cint;

cellQueue.push(Cell(0)); //将第一个细胞压入优先级队列

while(cellQueue.top().getSplitTime()=t){

cellQueue.top().split(); //模拟下一个细胞的分裂

cellQueue.pop(); //将刚刚分裂的细胞弹出

}

return0;

};例10-8(续);10.5.1关联容器分类和的基本功能;关联容器概念图;四种关联容器;10.5.2集合(set);//10_9.cpp,头部分省略

intmain(){

setdoubles;

while(true){

doublev;

cinv;

if(v==0)break; //输入0表示结束

pairsetdouble::iterator,boolr=s.insert(v);//尝试将v插入

if(!r.second) //如果v已存在,输出提示信息

coutvisduplicatedendl;

}

setdouble::iteratoriter1=s.begin(); //得到第一个元素的迭代器

setdoubl

文档评论(0)

131****2653 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档