- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++ STL常用算法简介
计算机学院 李卫明
混德窟冲荫梦决叫秦仕给臭淫技虱畔娠卵恤搜霜桨粤砧甜冗饯下坦檬眷蹭STL常用算法简介STL常用算法简介
算法
大家都能取得的一个共识是函数库对数据类型的选择对其可重用性起着至关重要的作用。举例来说,一个求方根的函数,在使用浮点数作为其参数类型的情况下的可重用性肯定比使用整型作为它的参数类性要高。而C++通过模板的机制允许推迟对某些类型的选择,直到真正想使用模板或者说对模板进行特化的时候,STL就利用了这一点提供了相当多的有用算法。它是在一个有效的框架中完成这些算法的——你可以将所有的类型划分为少数的几类,然后就可以在模版的参数中使用一种类型替换掉同一种类中的其他类型。
STL提供了大约100个实现算法的函数模版,比如算法for_each将为指定序列中的每一个元素调用指定的函数,stable_sort以你所指定的规则对序列进行稳定性排序等等。这样一来,只要我们熟悉了STL之后,许多代码可以被大大的化简,只需要通过调用一两个算法模板,就可以完成所需要的功能并大大地提升效率。
算法部分主要由头文件algorithm,numeric和functional组成。algorithm是所有STL头文件中最大的一个(尽管它很好理解),它是由一大堆函数模版组成的,可以认为每个函数在很大程度上都是独立的,其中常用到的功能范围涉及到比较、交换、查找、遍历操作、复制、修改、移除、反转、排序、合并等等。numeric体积很小,只包括几个在序列上面进行简单数学运算的函数模板,包括加法和乘法在序列上的一些操作。functional中则定义了一些类模板,用以声明函数对象。
计算机学院 李卫明
件岩溜提原溪区仔坝穷膨囤鲍杏婪扼槽痒们津调纬横伍机另付匪逊每卑晦STL常用算法简介STL常用算法简介
迭代器
下面要说的迭代器从作用上来说是最基本的部分,可是理解起来比前两者都要费力一些(至少笔者是这样)。软件设计有一个基本原则,所有的问题都可以通过引进一个间接层来简化,在STL中迭代器就是这种体现。概括来说,迭代器在STL中用来将算法和容器联系起来,起着一种黏合剂的作用。几乎STL提供的所有算法都是通过迭代器存取元素序列进行工作的,每一个容器都定义了其本身所专有的迭代器,用以存取容器中的元素。
迭代器部分主要由头文件utility,iterator和memory组成。utility是一个很小的头文件,它包括了贯穿使用在STL中的几个模板的声明,iterator中提供了迭代器使用的许多方法,而对于memory的描述则十分的困难,它以不同寻常的方式为容器中的元素分配存储空间,同时也为某些算法执行期间产生的临时对象提供机制,memory中的主要部分是模板类allocator,它负责产生所有容器中的默认分配器。
计算机学院 李卫明
遵丙肠必稿粟贷铰饯核欣曙僚彻政妖瑟该身实责韧抛今蝇坐语逸勾你珠实STL常用算法简介STL常用算法简介
计算机学院 李卫明
begin
该函数两个版本返回iterator或const_iterator,引用容器第一个元素
end
该函数两个版本返回iterator或const_iterator,引用容器最后一个元素后面一位
rbegin
该函数两个版本返回reverse_iterator或const_reverse_iterator,引用容器最后一个元素
rend
该函数两个版本返回reverse_iterator或const_reverse_iterator,引用容器第一个元素前面一位
erase
从容器中清除一个或几个元素
clear
清除容器中所有元素
顺序容器和关联容器共有常用函数
鱼住锡萄茎批统获倍卷榜踌怪瞪畸汞放秋攘傣劳锐货裕赃舒筐袱缺尾押骨STL常用算法简介STL常用算法简介
计算机学院 李卫明
顺序容器和关联容器中常用的typedef
value_type
容器中存放元素的类型
reference
容器中存放元素类型的引用
const_reference
容器中存放元素类型的常量引用,这种引用只能读取容器中的元素和进行const操作
pointer
容器中存放元素类型的指针
iterator
指向容器中存放元素类型的迭代器
const_iterator
指向容器中存放元素类型的常量迭代器,只能读取容器中的元素
reverse_iterator
指向容器中存放元素类型的逆向迭代器,这种迭代器在容器中逆向迭代
const_reverse_iterator
指向容器中存放元素类型的逆向迭代器,只能读取容器中的元素
difference_type
引用相同容器的两个迭代器相减结果的类型(list和关联容器没有定义operator-)
s
您可能关注的文档
最近下载
- 北师大版-数学-五年级上册-《多边形的面积》单元分析.doc VIP
- 新高考背景下历史课程教学改革探索教学研究课题报告.docx
- 2023-2024学年四川省成都市锦江区八年级(下)期末数学试卷(1).doc VIP
- DL T 1144-2012《火电工程项目质量管理规程》.pdf VIP
- 教科版六年级科学上册全册必背知识点知识清单.pdf VIP
- 《孩子是春天的另一种姿势》阅读练习及答案.doc VIP
- 2022-2023学年四川省成都市锦江区八年级(上)期末数学试卷.docx VIP
- T_CVMA 224-2025 猫传染性腹膜炎诊断规程.pdf VIP
- T_CVMA 232-2025 猪星状病毒五型荧光PCR检测方法.docx VIP
- T_CVMA 252-2025 马四肢X线及超声操作规范.pdf VIP
文档评论(0)