- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
类中使用 class Scale { private: int _scale; public: Scale(int scale) :_scale(scale) { } void ApplyScale(const vectorint v) { for_each(v.begin(), v.end(), [this](int n) { cout n*_scale endl; } ); } }; 模板中使用 template typename T void print_all(const vectorT v) { for_each(v.begin(), v.end(), [ ] (const T n) { cout n endl; } ); } int main(){ vectorint v; v.push_back(34); //… print_all(v); } 7.2.7 断言(assert) 用于调试,使用方法 assert ( 表达式 ); 当表达式为假,系统停止程序在该处,于是可检查调用栈各函数的执行的状态。当表达式为真,系统继续执行后面的代码。 头文件 #include cassert 在其头文件前声明NDEBUG #define NDEBUG 可关闭,即不执行assert语句,节省CPU。最后交付不再调试程序时才这样做。 7.2 示例程序 模板Stack类 定义 实现 使用 使用assert 用于调试 Stack_Ex 模板参数还可以是实例类型 例: templateclass T,int size class Stack; …… Stack int,100 stack; 7.3 标准模板库 STL 7.3.1 容器、算法、迭代器 STL容器:对象的集合,通过由容器类提供的成员函数,可以实现诸如向序列中插入元素,删除元素,查找元素等操作,这些成员函数通过返回迭代子来指定元素在序列中的位置。 序列式:vector, stack, queue, deque, list 关联式:set, map 特点:容器的大小动态变化,容器中的对象类型是参数化的。 容器分为三大类: 标准库容器类 说明 顺序容器 vector(向量) deque(双端队列) list(列表) 从后面快速插入与删除,直接访问任何元素 从前面或后面快速插入与删除,直接访问任何元素 从任何地方快速插入与删除,双链表 关联容器 set(集合) multiset(多重集合) map(映射) multimap(多重映射) 快速查找,不允许重复值 快速查找,允许重复值 一对一映射,基于关键字快速查找,不允许重复值 一对多映射,基于关键字快速查找,允许重复值 容器适配器 stack(栈) queue(队列) priority_queue (优先级队列) 后进先出(LIFO) 先进先出(FIFO) 最高优先级元素总是第一个出列 算法:对容器进行处理的函数,是模板函数. 通用的算法更易于扩充。算法中采用函数对象(function object)引入不同情况下同一算法的差异。它没有使用继承和多态,避免了虚函数的开销,使STL效率更高。 copy, sort, search, merge 迭代子(iterator) 迭代子(iterator): 对容器中对象的遍历机制,表现如同指针,或是一种高级指针,是面向对象版本的指针,它提供了访问容器或序列中每个对象的方法。这样就可以把算法用于容器所管理的序列。 int A[100]; int *p=A; for( int i=0;i100;i++) { *p = i; p++ } vectorint A(100); vectorint:: iterator p=A.begin(); for( int i=0;i100;i++) { *p = i; p++; } 各种迭代子可执行的操作 包含正向迭代子所有功能,再增加 先++后执行,前置自减迭代子 先执行后++,后置自减迭代子 双向迭代子 --p p-- 提供输入和输出迭代子的所有功能 正向迭代子 间接引用迭代子,作为左值 将一个迭代子赋给另一个迭代子 输出迭代子 *p p=p1 间接引用迭代子,作为右值 将一个迭代子赋给另一个迭代子 比较迭代子的相等性 比较迭代子的不等性 输入迭代子 *p p=p1 p==p1 p!=p1 前置自增迭代子,先++后执行 后置自增迭代子,执行后再++ 所有迭代子 ++p p++ 说明 迭代操作 所有容器通用的方法 插入:inser
您可能关注的文档
- 旧桥加固3重点.ppt
- 水域分割实验报告重点.docx
- 第7章Java对象-副本重点.ppt
- 第7章PDO数据库抽象层_教学设计重点.doc
- 第八章分拣系统重点.ppt
- 水质方法验证报告石墨(铅和镉)重点.doc
- 第13章Oracle数据挖掘技术重点.ppt
- 第13章安全与隐私技术-《物联网技术基础教程》重点.ppt
- 钢丝作业和酸化剖析.ppt
- 第八章-服务质量的评价重点.ppt
- 2025年广州康大职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年机油冷却器项目策划方案报告.docx
- 2025年广州康大职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析.docx
- (立项备案申请模板)日用小家电项目可行性研究报告参考范文.docx
- 2025年球墨铸铁管行业市场研究报告.docx
- 混合型生物人工肝支持系统可行性报告(二).docx
- 深圳市前海能源科技发展有限公司_企业报告(业主版).docx
- 钢丝网项目可行性研究报告.docx
- (2025)1-4酸钠盐生产建设项目可行性研究报告(一).docx
- 基建年度报告总结范文(3).docx
最近下载
- 湖南省新高考教学教研(长郡二十校)联盟2024-2025学年高三上学期第一次预热演练物理试卷(含答案).pdf VIP
- 2025年长沙民政职业技术学院单招职业倾向性测试题库精选.docx VIP
- 2012款13东风本田艾力绅ELYSION_汽车使用手册用户操作图解驾驶指南车主车辆说明书电子版.pdf
- 专题01:考纲词汇01-高考英语3500词精背精练(含答案).docx
- 脑卒中后抑郁课件篇.ppt
- 2025年1月浙江首考高考英语试卷真题完整版(含答案+听力原文).pdf
- 2024年四川省成都市武侯区中考语文二诊试卷.doc
- 2025年四川省绵阳市中考二模英语试题.pdf VIP
- 《资治通鉴》【全译本】.pdf
- 公路养护工技师考试试题1.doc
文档评论(0)