【学习】STL标准模板类

  STL,中文名标准模板库,是一套C++的标准模板类(是类!),包含一些模板类和函数,提供常用的算法和数据结构。

  STL分为:迭代器,容器,适配器,算法以及函数对象。

--迭代器是一种检查容器内元素并遍历元素的数据类型,是对容器访问逻辑的抽象,通过间接的方式实现容器与算法之间的独立,提供对容器中对象的访问方法(例如指针)。

--容器就是装有其他对象或者指向其他对象的指针的容器(容器也是对象类型的),能够自动管理自己的内存。还包括了一些处理其他对象的方法(可扩展)。

--适配器是组成容器实现的一种数据结构。

--算法算法作用于容器。提供执行各种操作的方式(对容器内容执行初始化、排序、搜索和转换等操作)。

————————————————————————————————————————————————

定义容器类型对象需要导入头文件<vector>,<list>,<deque>...

所有容器都是类模板,都有默认的构造函数(无参)

例如:vector<string> str;

    尖括号里说明存放的元素的数据类型(对象)。 

容器:顺序容器:向量vector,链表list,队列deque

     关联容器:map,set,multiset,multimap

     容器适配器:栈stack,队列queue,优先级队列priority_queue

顺序容器的元素之间是顺序关系的线性表,元素有固定的位置且位置与元素的操作时间地点无关。

关联容器是非线性的树结构,个元素之间没有严格的物理上的顺序,以键值方式保存。

容器适配器是实现容器的接口,不直接保存元素,仅发生接口转换。

vector  连续的存储空间,允许随机访问,可通过下表访问,因为添加删除中间的元素要移动改动元素后面元素的位置,而添加元素需要分配更大的内存空间并释放掉旧的空间。

list  非连续,由若干节点构成,每个节点包括信息块,前驱指针,后驱指针。对中间数据进行操作比vector快,不支持随机访问和下标,可以迅速的插入和删除数据(只对要改动的元素及其前后最多三个元素有影响)

deque 多个连续的储存快(好比多个vector但不连续),允许随机访问,在一个映射结构中保存各个块的跟踪及顺序。

没写完等两天再写,学艺不精还想找个实习单位。。。

猜你喜欢

转载自www.cnblogs.com/HY12345/p/9643521.html