- 5
- 0
- 约1.07万字
- 约 46页
- 2016-08-23 发布于重庆
- 举报
第7章模板与标准模板库
模板中使用 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++ 说明 迭代操作 上海大学机电工程与自动化学院 雷电 所有容器通用的方法 插入:insert(位置,对象) 删除:erase(位置) , erase(位置1,位置2) 清除所有元素:clear( ) 所有容器通用的特殊方法 首元素迭代子:begin() 尾迭代子(最后一
您可能关注的文档
- 教学设计六个关键环节.doc
- 教案故事.doc
- 数字万用表故障分析及处理.doc
- 苏科版八年级上册4.4照相机和眼球视力的矫正(预习导学+例题精析+当堂训练+课堂检测+课后练习,无答案.doc
- 国家级重点学科-材料加工工程简介.doc
- 南岔区棚户区改造征收与补偿方案.doc
- 南开15秋学期《公文写作与处理(本)》在线作业.doc
- 故障码与故障的关系.ppt
- 散装纯粮固态发酵白酒供销协议.doc
- 南开大学企业管理复试考研真题.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 商务型(带电梯、地下室、效果图)三层别墅设计图.pdf VIP
- 2026年详版个人信用报告征信报告最新Word可编辑模版样板doc文件.docx
- 2026年春接力版(新教材)小学音乐一年级下册(全册)教学设计(附目录P160).docx
- 行者讲课脉法下篇.doc VIP
- 铁塔电池通讯协议.docx VIP
- 复旦大学课程汉语言文学原典精读李杜精读.pdf VIP
- 电商数据分析(微课版)课件全套 第1--10章 电商数据分析概述---数据分析报告与看板制作.pptx
- 异常子宫出血的护理查房.pptx
- 2025年中医执业医师个人工作计划范文.docx VIP
- 2024《中班幼儿饮食行为现状调查—以S幼儿园为例》12000字.docx VIP
原创力文档

文档评论(0)