- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计实习第二十讲标准模板库stl i.ppt
程序设计实习第二十讲 标准模板库 STL I 主讲教师:田永鸿 yhtian@ /cpp2008/tyh/tyh.htm /jiaoxue-CPP/cpp08.htm 2008年5月19日 课堂问题 下列代码是否存在错误,若存在,该如何改正?template class T, int size class CTemp{ friend void myClassT::func(); private: T elements[size]; public: CTemp(T arg); }; template class T void myClassT ::func(){ CTempT, 50 a(10); int i; for(i=0; i50; i++) { couta.elements[i]endl;} return; } myClassint obj; obj.func(); 课堂问题 有如下类模板定义 template class T1, class T2, int size class CTemp{ friend myClassAT1; friend myClassBT2; private: T1 elements[size]; public: CTemp(T arg){}; }; 则myClassAint、myClassBdouble、myClassAdouble、myClassAchar都是CTempint, double, 50的友员类 课堂问题 找出下列代码中的错误之处,并解释a(10)(或b(8.9)、…的含义) template class T, int size class CTemp{ friend void func(int); private: T elements[size]; public: CTemp(T arg){}; }; void func(int size){ CTempint, 50 a(10); CTempdouble, 50 b(8.9); CTempint, size c(10); CTempdouble, size d(10); int i; for(i=0; i50; i++) { couta.elements[i]“ ” b.elements[i]endl;} return; } 提纲 1. 引言 2. STL中的基本概念 3. 容器概述 4. 迭代器 5. 算法简介 6. 顺序容器 概论 C++ 语言的核心优势之一就是便于软件的重用 C++中有两个方面体现重用: 1. 面向对象的思想:继承和多态,标准类库 2. 泛型程序设计(generic programming) 的思想:模板机制,以及标准模板库 STL 泛型程序设计 泛型程序设计,简单地说就是使用模板的程序设计法。 将一些常用的数据结构(比如链表,数组,二叉树)和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什么样的对象,则都不必重新实现数据结构,重新编写算法。 标准模板库 (Standard Template Library) 就是一些常用数据结构和算法的模板的集合。主要由 Alex Stepanov 开发,于1998年被添加进C++标准 有了STL,不必再从头写大多的标准数据结构和算法,并且可获得非常高的性能。 STL中的几个基本概念 容器:可容纳各种数据类型的数据结构。 迭代器:可依次存取容器中元素的东西 算法:用来操作容器中的元素的函数模板。例如,STL用sort()来对一个vector中的数据进行排序,用find()来搜索一个list中的对象。 函数本身与他们操作的数据的结构和类型无关,因此他们可以在从简单数组到高度复杂容器的任何数据结构上使用。 比如,数组int array[100]就是个容器,而 int * 类型的指针变量就可以作为迭代器,可以为这个容器编写一个排序的算法 容器概述 可以用于存放各种类型的数据(基本类型的变量,对象等)的数据结构。 容器分为三大类: 1) 顺序容器 ? vector:后部插入/删除,直接访问deque:前/后部插入/删除,直接访问list:双向链表,任意位置插入/删除 ?2)关联容器 set:快速查找,无重复元素multiset :快速查找,可有重复元素map:一对一映射,无重复元素,基于关键字查找multimap :一对一映射,可有重复元素,基于关键字查找 前2者合称为第一类容器 3)容器适配器 stack:LIFOqueue:FIFOpriority_queue:优先
您可能关注的文档
最近下载
- GB50086-2015 岩土锚杆与喷射混凝土支护工程技术规范.docx
- T GAIA 031—2025 人血清中米酵菌酸的测定 高效液相色谱-串联质谱法.pdf VIP
- 内蒙古森工集团招聘考试真题2024.docx VIP
- 铁路客运组织.pptx VIP
- 2025江苏苏州市农业发展集团有限公司下属子公司工作人员招聘13人考试备考试题及答案解析.docx VIP
- 火车过桥问题课件.ppt VIP
- 2025年农村生活污水治理资金申请专项报告.docx
- YS_T 1092-2015有色重金属冶炼渣回收的铁精粉.pdf
- 主体结构验收汇报施工单位最新.doc VIP
- 05X101-2 地下通信线缆敷设(OCR).pdf VIP
文档评论(0)