STL总结.doc
上传人:sy****28 上传时间:2024-09-14 格式:DOC 页数:5 大小:39KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

【转】STL知识点(常用算法函数介绍,容器,类属算法,迭代函,数对象,适配器,分配器)2011-10-0519:35转载自HYPERLINK"http://hi.baidu.com/froger06"froger06最终编辑HYPERLINK"http://hi.baidu.com/chensb666"chensb666------《标准模板库自修教程与参考手册STL进行C++编程》------STL的6大组件:容器、类属算法、迭代器、函数对象、适配器、分配器。---------------------------------------------------------------------------------------------迭代器:迭代器是类似指针的对象,STL算法利用它们对存储在容器中的对象序列进行遍历。5种类别:1、输入迭代器::iteratoristream_iterator<>输入流迭代器2、输出迭代器::iteratorostream_iterator<>输出流迭代器3、前向迭代器::iterator既是输入也是输出迭代器4、双向迭代器::iterator支持前向迭代器的所有操作还需能进行反向遍历5、随机访问迭代器::iterator对序列中间元素的访问必须具有常量的时间复杂度要求随机访问迭代器支持双向迭代器的所有操作,此外还要求支持(其中r和s分别是随机访问迭代器,n是整数表达式):对整数的加法和减法,以r+n,n+r和r-n表示:使用表达式r[n]访问第n个元素,其含义为*(r+n):双向“跳转”,以r+=n和r-=n表示:迭代器减法,以r-s表示,其结果为整数值:比较以r<s,r>s,r<=s和r>=s表示,其结果为布尔值插入迭代器:-back_insert_iterator<Container>使用Container的push_back成员函数-front_insert_iterator<Container>使用Container的push_front成员函数-insert_iterator<Container>使用Container的insert成员函数--------------------------------------------------------------------------------------------类属算法:类属算法分为1、非可变序列算法2、可变序列算法3、排序相关算法4、通用数值算法1、非可变序列算法:指不直接修改其所操作的容器内容的算法。find:Locatesthepositionofthefirstoccurrenceofanelementinarangethathasaspecifiedvalue.(查找序列中第一个出现的给定值的位置)。它的判断函数的形式是find_if:查找序列中第一个使给定的判断函数返回真的元素。find和find_if具有线性时间复杂度。adjacent_find:Searchesfortwoadjacentelementsthatareeitherequalorsatisfyaspecifiedcondition.(查找在序列中相邻且相等或者满足指定条件的两个元素)此算法返回指向两个元素中第一个元素的迭代器。adjacent_find具有线性时间复杂度。count:Countsthenumberofelementsintherange[First,Last+1)thatmatchValueandreturnsthenumberofmatchingelements.(计算[First,Last+1)区间内与Value相匹配的对象的数目并作为返回值返回(相匹配元素的个数))。它的一元判断函数形式是count_if:满足给定条件的元素的个数。count和count_if具有线性时间复杂度。for_each:Appliesaspecifiedfunctionobjecttoeachelementinaforwardorderwithinarangeandreturnsthefunctionobject.对序列中指定范围内的每个元素施加由指定函数指定的操作。返回函数对象拷贝。for_each具有线性时间复杂度。mismatch:Comparestworangeselementbyelementeitherforequalityorequivalentinasensespecifiedbyabinarypredicateandlocatesthefirstpositionwhereadifferenceoccurs.比较容器中两个区间的元素。返回位置。详见