标准模板库STL学习总结
标准模板库就是类与函数模板的大集合.stl共有6种组件:容器,容器适配器,迭代器,算法,函数对象和函数适配器.
1、容器:
容器是用来存储和组织其他对象的对象.stl容器类的模板在标
准头文件中定义.主要如下所示
①序列容器
基本的序列容器是上面图中的前三类:
关于三者的优缺点主要是:
a:vector
矢量容器的操作:(自己以前有个表,贴出来大家看看)
其中的capacity表示容量,size是当前数据个数.矢量容器如果用户添加一个元素时容量已满,那么就增加当前容量的一半的内存,比如现在是500了,用户添加进第501个,那么他会再开拓250个,总共就750个了.所以矢量容器当你添加数据量很大的时候,需要注意这一点哦...
如果想用迭代器访问元素是比较简单的,使用迭代器输出元素的循环类似如下:
vector cout<<""<<*iter;当然也可以用我们自己的方法,但是感觉用上面的更好一些. for(vector 排序矢量元素: 对矢量元素的排序可以使用 sort()函数模板用<运算符来排列元素的顺序,所以容器中对象必须可以进行<运算,如果是基本类型,可以直接调用sort(),如果是自定义对象,必须对<进行运算符重载两个迭代器的指向必须是序列的第一个对象和最后一个对象的下一个位置.比 如:sort(people.begin(),people.end());//这里两个参数就是迭代器的意思了 b:deque deque #include deque c:list ②关联容器 map 有关它的创建以及查找的操作作如下总结 //创建映射容器map pair personkey=person("mel","gibson");map 2、容器适配器: 容器适配器是包装了现有的stl容器类的模板类,提供了一个不同的、通常更有限制性的功能.具体如下所示 a:queue 代码:queue b:priority_queue 默认情况下,优先级队列适配器类使用的是矢量容器vector priority_queue c:stack //定义容器stack stack 基本操作如下: 3、迭代器: 具体它的意思还没怎么看明白,书上介绍迭代器的行为与指针类似,这里做个标记 具体分为三个部分:输入流迭代器、插入迭代器和输出流迭代器. 看这一章的内容看的我有点抑郁了都,摘段课本介绍的内容,还是可以帮助理解的 入流,ostream_iterator 板:insert 输入流迭代器用下面的程序来说明下,可见具体注释 #include end()istream_iterator 束.while(numbersinput!=numbersend)numbers.push_back(*number sinput++);cout<<"打印输出:"< stringdata("2.13.636.52634252.963.8");//指定data为输入流input.需要头文件 输出结果: 耽误时间太多.以后再写吧 4、算法: 算法是操作迭代器提供的一组对象的stl函数模板,对对象的一个操作,可以与前面的容器迭代器结合起来看.如下图介绍 5、函数对象: 函数对象是重载()运算符的类类型的对象.就是实现 operator()()函数. 函数对象模板在 6、函数适配器: 函数适配器是允许合并函数对象以产生一个更复杂的函数对象的函数模板. 版权声明:本文为博主原创文章,未经博主允许不得转载.