- 1、本文档共88页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CSTL详解
ACM/ICPC程序设计 C++ 标准模板库C++ Standard Template Libarary 计算机学院 万波 主要内容 STL概述:组件、容器、迭代器(iterator)、算法 STL容器: 常用容器:vector、deque、 list、 map/multimap 、set 特殊容器:stack、queue,priority_queue 其他容器:hashtable STL算法:搜寻、排序、拷贝、数值运算 STL概述 STL是C++标准程序库的核心,深刻影响了标准程序库的整体结构 STL是泛型(generic)程序库,利用先进、高效的算法来管理数据 STL由一些可适应不同需求的集合类(collection class),以及在这些数据集合上操作的算法(algorithm)构成 STL内的所有组件都由模板(template)构成,其元素可以是任意类型 STL是所有C++编译器和所有操作系统平台都支持的一种库 STL概述 STL概述 STL概述 模板(template) 函数模板 STL概述 模板(template) 类模板 STL概述 STL组件 容器(Container) - 管理某类对象的集合 迭代器(Iterator) - 在对象集合上进行遍历 算法(Algorithm) - 处理集合内的元素 容器适配器(container adaptor) 函数对象(functor) STL概述 STL容器类别 序列式容器-排列次序取决于插入时机和位置 关联式容器-排列顺序取决于特定准则 STL概述 STL容器的共通能力 所有容器中存放的都是值而非引用,即容器进行安插操作时内部实施的是拷贝操作。因此容器的每个元素必须能够被拷贝。如果希望存放的不是副本,容器元素只能是指针。 所有元素都形成一个次序(order),可以按相同的次序一次或多次遍历每个元素 各项操作并非绝对安全,调用者必须确保传给操作函数的参数符合需求,否则会导致未定义的行为 STL概述 STL容器元素的条件 必须能够通过拷贝构造函数进行复制 必须可以通过赋值运算符完成赋值操作 必须可以通过析构函数完称销毁动作 序列式容器元素的默认构造函数必须可用 某些动作必须定义operator ==,例如搜寻操作 关联式容器必须定义出排序准则,默认情况是重载operator STL概述 STL容器的共通操作 初始化(initialization) 产生一个空容器 以另一个容器元素为初值完成初始化 以数组元素为初值完成初始化 STL概述 STL容器的共通操作 与大小相关的操作(size operator) size()-返回当前容器的元素数量 empty()-判断容器是否为空 max_size()-返回容器能容纳的最大元素数量 比较(comparison) ==,!=,,=,,= 比较操作两端的容器必须属于同一类型 如果两个容器内的所有元素按序相等,那么这两个容器相等 采用字典式顺序判断某个容器是否小于另一个容器 STL概述 STL容器的共通操作 赋值(assignment)和交换(swap) swap用于提高赋值操作效率 与迭代器(iterator)相关的操作 begin()-返回一个迭代器,指向第一个元素 end()-返回一个迭代器,指向最后一个元素之后 rbegin()-返回一个逆向迭代器,指向逆向遍历的第一个元素 rend()-返回一个逆向迭代器,指向逆向遍历的最后一个元素之后 STL概述 容器的共通操作 元素操作 insert(pos,e)-将元素e的拷贝安插于迭代器pos所指的位置 erase(beg,end)-移除[beg,end]区间内的所有元素 clear()-移除所有元素 STL概述 迭代器(iterator)(示例:iterator) 可遍历STL容器内全部或部分元素的对象 指出容器中的一个特定位置 迭代器的基本操作 STL概述 迭代器(iterator) 所有容器都提供获得迭代器的函数 STL概述 迭代器(iterator) 所有容器都提供两种迭代器 container::iterator以“读/写”模式遍历元素 container::const_iterator以“只读”模式遍历元素 迭代器示例:iterator STL概述 迭代器(iterator) 迭代器分类 双向迭代器 可以双向行进,以递增运算前进或以递减运算后退、可以用==和!=比较。 list、set和map提供双向迭代器 随机存取迭代器 除了具备双向迭代器的所有属性,还具备随机访问能力。 可以对迭代器增加或减少一个偏移量、处理迭代器之间的距离或者使用和之类的关系运算符比较两个迭代器。 vector、deque和string提供随机存取迭代器 S
您可能关注的文档
- 用实际行动关爱留守儿童.doc
- CPP程序设计:类和对象(一).ppt
- 小学生高年级独生子女人际关系调查报告.doc
- php类详解.pdf
- 第1期简报:河南教育学院团委部署2011年大学生暑期社会实践活动.doc
- 北京-RT科技有限公司.doc
- 自己动手建立企业局域网.pdf
- 浅谈C#结构.doc
- 浅析如何实现北川产业人才双向聚集.doc
- VB编程基础教程7–数据类型.doc
- 猫咪血尿怎么办好.docx
- 电动汽车充电站商业计划书.docx
- 洛阳精密金属结构件项目商业计划书.docx
- 江苏省南京市五校2023-2024学年高二下学期期初调研测试英语试题(解析版).docx
- 专题09 三大从句(状语从句、定语从句、宾语从句)-2025年中考英语二轮复习讲练(浙江专用)(解析版).docx
- 三湘名校教育联盟五市十校教研教改共同体2024-2025学年高三2月入学大联考英语试题(解析版).docx
- 专题01 高频词汇变形归纳-2025年中考英语二轮复习讲练(浙江专用).docx
- 专题03 古今中外科技成就(课件)-2025年中考历史二轮复习(浙江专用).pptx
- 热点02 麦加高温、能登地震、西班牙暴雨……防灾减灾-2025年高考地理 热点 重点 难点 专练(上海专用)(原卷版).docx
- 专题02 中国古代经济发展(课件)-2025年中考历史二轮复习(浙江专用).pptx
最近下载
- GB 50300-2013建筑工程施工质量验收统一标准.pdf VIP
- 传统文化非物质文化遗产舞龙龙舞传承介绍科普PPT教学课件.pptx
- 挖掘机挂靠协议.docx
- 2024年苏州卫生职业技术学院单招职业技能测试题库及答案解析.docx VIP
- 良肢位摆放考核标准(100分).xlsx VIP
- 2024年苏教版六年级数学下册全册导学案导学单.docx
- 仓储管理员初级测试题库含答案.pdf VIP
- 曝气系统技术协议-巴州医院.pdf
- DB11T 2333-2024危险化学品生产装置和储存设施长期停用安全管理要求.pdf VIP
- 第27课 中国特色社会主义的开创与发展 课件(共36张PPT).ppt VIP
文档评论(0)