- 1、本文档共134页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STL算法主要由头文件algorithm、numeric和functional组成: “algorithm”是所有STL头文件中最大的一个,它是由很多函数模板组成的。可以认为每个函数模板在很大程度上都是独立的,其中常用到的功能范围涉及到比较、交换、查找、遍历、赋值、修改、移动、移除、反转、排序、合并等。如果使用这些函数模板,要在头文件中包含algorithm。 §8.4.3 算法 STL算法主要由头文件algorithm、numeric和functional组成: “numeric”体积很小,只包括几个在序列上面进行简单数学运算的函数模板,包括加法和乘法在序列上的一些操作。 “functional”中则定义了一些类模板,用以声明函数对象。 §8.4.3 算法 //STL演示程序:输入--排序--输出 #include iostream #include string //用于人机界面交互 #include vector //为了使用vector容器 #include algorithm //为了使用sort算法 #include iterator //为了使用输入输出迭代器 using namespace std; STL中的copy算法和sort算法应用的例子 §8.4.3 算法 int main(void) { typedef vectorint IntVector; typedef istream_iteratorint IstreamItr; typedef ostream_iteratorint OstreamItr; typedef back_insert_iterator IntVector BackInsItr; // STL中的vector容器 IntVector num; //从标准输入设备读入整数,直到输入的是非整型数据为止 cout 请输入整数序列,按任意非数字键并回车结束输入\n; copy(IstreamItr(cin), IstreamItr(), BackInsItr(num)); §8.4.3 算法 //提示程序状态 cout 排序中……\n; // STL中的排序算法 sort(num.begin(), num.end()); cout排序完毕的整数序列:\n; copy(num.begin(), num.end(), OstreamItr(cout, \n)); //使输出窗口暂停以观察结果 system(pause); return 0; } §8.4.3 算法 本章内容勘误 1. P219 【例8-7】的程序代码的第8行、第9行中两个“”全部修改为““。 2. P233 从上面数第3行: 30,40,50,60,70,80,90,100 修改为: 30 40 50 60 70 80 90 100 3.编写一个顺序表类模板。 4. 编写一个单链表类模板。 * * 容器是容纳、包含一组元素或元素集合的对象。不管是C++内建的基本数据类型或是用户自定义的类类型的数据,都可以存入STL的容器中。 §8.4.1 容器 注意:如果存储在容器中的元素的类型是用户自定义的类类型,那么至少要为该类提供默认的构造函数、析构函数和赋值运算符函数。一些编译器还需要重载一些关系操作符函数(至少需要重载= =和,还可能需要重载!=和),即使程序并不需要用到它们。另外,如果用户自定义的类中有指针数据成员,还必须提供复制构造函数和函数operator=,因为插入操作使用的是插入元素的一个副本,而不是元素本身。 §8.4.1 容器 STL容器按存取顺序大致分为两种: 序列(sequence)容器与关联(associative)容器。 序列容器主要包括vector(向量)、list(表)、deque(双端队列)、stack(栈)、queue(队列)、priority_queue(优先队列)等。其中,stack和queue由于只是将deque改头换面,其实是一种容器适配器,但它的用途在软件领域比deque广泛。priority_queue也是一种容器适配器。序列容器中只能包含一种类型的数据元素,而且各元素的排列顺序完全按照元素插入时的顺序。 §8.4.1 容器 关联容器主要包括set(集合)、multiset(多重集合)、map(映射)、multimap(多重映射),可以存储值的集合或键值对。键是关联容器中存储在有序序对中的特定类型的值。map和multimap存储和操作的是键和与键相关的值,其元素是有关联的键,值数据对。set和multiset存储和操
您可能关注的文档
- 英语作文预测-看图作文.ppt
- C++第4章继承与组合.ppt
- C++第5章多态性与虚函数.ppt
- 北京化工大学电工学(电工技术)第七版3电路的暂态分析.ppt
- 北京化工大学电工学(电工技术)第七版4正弦交流电路.ppt
- 建筑光学物理复习资料2.1建筑光学的基本知识.ppt
- 建筑光学物理复习资料2.2天然采光.ppt
- 英语口语考试备考内容(口语话题选择).doc
- 建筑光学物理复习资料2.3建筑照明.ppt
- 北师大大学美育电影部分王韵课件.电影鉴赏第一讲.ppt
- 贵州省六盘水市企业人力资源管理师之一级人力资源管理师考试完整版【实用】.docx
- 贵州省遵义市企业人力资源管理师之一级人力资源管理师考试大全【全国通用】.docx
- 贵州省铜仁地区企业人力资源管理师之四级人力资源管理师考试含答案(精练).docx
- 贵州省六盘水市企业人力资源管理师之一级人力资源管理师考试通关秘籍题库精品(名师推荐).docx
- 贵州省贵阳市企业人力资源管理师之一级人力资源管理师考试完整题库加解析答案.docx
- 贵州省遵义市企业人力资源管理师之一级人力资源管理师考试精选题库及答案(夺冠).docx
- 车管所业务岗位职责 .pdf
- 走前头 做表率 .pdf
- 贵州省黔西南布依族苗族自治州企业人力资源管理师之一级人力资源管理师考试王牌题库(突破训练).docx
- 贵州省遵义市企业人力资源管理师之一级人力资源管理师考试题库及参考答案(黄金题型).docx
文档评论(0)