第12章 C++标准模板库.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
dequeint ideq; copy (ilist.begin(), ilist.end(), // 源区间 front_inserter(ideq)); // 目标位置 dequeint::iterator iterd; //使用迭代器遍历输出ideq中的元素 for (iterd=ideq.begin();iterd!=ideq.end();iterd++) { cout*iterd ; } coutendl; } 12.7 仿函数 仿函数是一个行为类似函数的对象。我们创建一个类的时候可以使用运算符重载技术来重载运算符operator(),这样这个类的对象的行为就会类似函数,它也可以被当成函数来使用。因为仿函数是某个类的对象,所以每个仿函数都有自己的具体类型。在实现的过程中,仿函数通常比一般函数速度快。 STL中包含了许多预先定义的仿函数,我们可以通过其中用来做排序准则的less来学习仿函数的使用。 【例12-8】仿函数使用举例 /*12-8.cpp*/ #include iostream #include algorithm #include vector #include functional using namespace std; int main() { vectorint ivec; //向vector容器乱序插入1~5 ivec.push_back(3); ivec.push_back(1); ivec.push_back(4); ivec.push_back(5); ivec.push_back(2); //使用仿函数lessint作为容器ivec内部元素的排序规则进行排序 sort(ivec.begin(),ivec.end(),lessint()); int i; //遍历并且输出容器ivec内部所有元素的值 for (i=0;iivec.size();i++) { coutivec[i] ; } coutendl; return 0; } 12.8 本章知识点小结 STL是泛型程序设计的一个良好的范例。标准C++类库包含的组件既支持 面向对象程序设计 的设计与编程,又支持泛型程序设计。标准组件对两种设计方法的支持赋予了C++类库复合或双重特性。 构建STL的框架最关键的3个组件是容器、迭代器、算法。这里算法处于核心地位, 迭代器如同算法和容器之间的桥梁,算法通过迭代器从容器中获取元素,然后将获取的元素传递给特定的仿函数进行的操作,最后将处理后的结果储存到容器 中。 在C++标准库中包括7种基本容器:vector、deque、list、set、multiset、map和multimap 等。这7种容器可以分为2种基本类型: 顺序容器 和 关联容器 。 3种STL容器适配器是stack 、queue和priority_queue。 第十二章 C++标准模板库 内蒙古科技大学 12.1 C++标准模板库简介 C++标准模板库(Standard Template Library)是C++标准程序库的核心内容。它是使用了泛型技术的模板库,可以很方便地使用高效的算法来处理数据。STL对于程序原来说是可以实现多种数据结构功能的类的集合,以及在这些类中可以实现的多种算法的总和。模板技术使得STL可以处理任意的数据类型。STL的基本观念是实现数据与操作的分离。STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。 STL被内建在你的编译系统之内。STL的版本很多,常见的有HP STL、PJ STL、 SGI STL等。 在C++标准中,STL被组织为下面的13个头文件:algorithm、deque、functional、iterator、vector、list、map、memory、numeric、queue、set、stack和utility。 12.2 C++标准模板库概述 STL由六部分组成,它们分别是容器(Container),迭代器(Iterators),算法(Algorithms),空间配置器(Allocator),配接器(Adaptors)和仿函数(Functors)。其中容器,迭代器和算法是STL的核心内容。 容器(Container)是管理某类对象的集合。STL里面有多种容器类型,每种类型的容器都有自身的优缺点,程序员可以根据具体需要来选择适合自己程序的容器类型。 迭代器(Iterators)是类似于C++中的指针,可以对一组对象集合执行遍历操作。通过使用一组公共

文档评论(0)

***** + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档