- 1、本文档共128页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
标准模板库STL的
第12章 标准模板库STL 标准模板库(Standard Template Library,简称STL)是ANSI/ISO C++最有特色、最实用的部分之一。 标准模板库STL主要包括: 容器(Containers) 算法(Algorithms) 迭代器(Iterators) 函数对象(Function Objects) 适配器(Adaptors) 内存配置器(Allocators) 标准模板库STL主要由6大组件组成: (1)容器(Containers)。包括各种基本数据结构的类模板。 STL容器部分主要由头文件vector、list、deque、set、 map、stack和queue组成。 (2)算法(Algorithms)。包括各种基本算法,如比较、交换、查找、排序、遍历操作、复制、修改、移除、反转、合并等等。 STL算法部分主要由头文件algorithm和numeric组成。 (3)迭代器(Iterators)。迭代器是面向对象版本的指针,如同指针可以指向内存中的一个地址,迭代器可以指向容器中的一个位置。 STL的每一个容器类模板中,都定义了一组对应的迭代器类,用以存取容器中的元素。这样,在STL中迭代器就将算法和容器联系起来了,通过迭代器,算法函数可以访问容器中指定位置的元素,而无需关心元素的具体类型。 STL迭代器部分主要由头文件utility和iterator组成。 (4)函数对象(Function Objects)。一种行为类似于函数的class,实现技术上是一个改写了“call operator()”的class。 STL 提供 15 个预定义的 Function objects。头文件functional中定义了一些类模板,用以声明函数对象。 STL最主要的一个特点:数据结构和算法的分离。 容器是像链表,向量、栈、队列之类的数据结构,并按类模板方式提供; 算法是函数模板,用于操作容器中的数据。 由于STL以模板为基础,所以能用于任何数据类型和结构。 实际上,可以认为STL是以容器和迭代器为基础的一种泛型算法(Generic Algorithms)库。 所谓泛型(Genericity)是指能够在多种数据类型上进行操作,在泛型化程序设计思想里,大部分基本算法被抽象,被泛化,独立于与之对应的数据结构,用于以相同或相近的方式处理各种不同情形。 12.2 容器类 容器类是容纳一组对象或对象集的类。 STL中容器有顺序容器(Sequence Container or Sequential Container)和关联容器(Associative Container)。 顺序容器组织成对象的有限线性集合,所有对象都是同一类型。STL中三种基本顺序容器是:向量(vector)、线性表(list)、双向队列(deque)。 关联容器提供了基于Key的数据的快速检索能力。元素被排好序,检索数据时可以二分搜索。STL有四种关联容器:集合(set)、多元集合(multiset)、映射(map)、多元映射(multimap)。当一个Key对应一个Value时,可以使用集合和映射;若对应同一Key有多个元素被存储时,可以使用多元集合和多元映射。 12.2.1 顺序容器 1.vector 向量vector是用于容纳不定长线性序列的容器,提供对序列的快速随机访问(也称直接访问)。 vector 的数据安排以及操作方式,与C++中的数组非常相似。 区别在于:C++中的数组是固定大小的,分配给C++数组的空间数量在数组的生存期内是不会改变的。 向量vector是动态结构,它的大小不固定,可以在程序运行时增加或减少。 vector中的元素在内存是连续存储的,可以直接访问。 包含vector类的头文件是vector。所以,如果要在程序里使用向量容器,就要在程序中包含下面语句: #include vector 在定义向量类型对象时,必须指定该对象的类型。 例如: vectorint in
您可能关注的文档
- 晶体三极管知识简介的.ppt
- 晶体中的缺陷的.doc
- 晶体硅太阳能电池组的件装配工艺作业指导书(单焊)2013.doc
- 晶体管PN结原理解释的.doc
- 晶体管功放调试方法的.doc
- 晶体管元件认识及测的量.ppt
- 晶体管原理(BJT)的.ppt
- 晶体管参数的.doc
- 晶体管及其应用的.ppt
- 晶体管器件的.ppt
- 2023年度全国统考教师资格考试《教育教学知识与能力(小学)》考前冲刺练习试题含完整答案详解【全国通.docx
- 2023年度全国统考教师资格考试《教育教学知识与能力(小学)》考前冲刺练习试题含答案详解【新】.docx
- 功能模块详细信息统计表.doc
- 2023年度全国统考教师资格考试《教育教学知识与能力(小学)》考前冲刺练习含答案详解【能力提升】.docx
- 2023年度全国统考教师资格考试《教育教学知识与能力(小学)》考前冲刺练习含答案详解.docx
- 2023年度全国统考教师资格考试《教育教学知识与能力(小学)》考前冲刺练习含答案详解【夺分金卷】.docx
- 绿色能源驱动下2025年电动叉车租赁行业服务创新研究报告.docx
- 2023年度全国统考教师资格考试《教育教学知识与能力(小学)》考前冲刺练习及参考答案详解【典型题】.docx
- 2023年度全国统考教师资格考试《教育教学知识与能力(小学)》考前冲刺练习试题含答案详解(最新).docx
- 安庆师范大学单招《英语》题库检测试题打印及参考答案详解【综合题】.docx
最近下载
- 土地流转解约合同模板8篇.docx VIP
- 学堂在线 科研伦理与学术规范 期末考试答案.docx VIP
- 《GBT 5336-2022汽车车身修理技术条件》最新解读.pptx
- 中国台球协会技能等级考试中式台球考题说明.pdf VIP
- 国开 电大计算机应用基础 终结性考试试题及答案.docx VIP
- GBT3798-2021 汽车大修竣工出厂技术条件.pdf VIP
- 《中国现代文学专题》期末复习指导_综合练习题及答案.doc VIP
- 化学方程式配平万能解法解析.docx VIP
- 风电基础工程清单报价汇总表.pdf VIP
- 2024年曲阜师范大学成教《计算机控制技术》期末考试复习试题.pdf VIP
文档评论(0)