初识STL——基础篇
一、STL到底是什么
STL从广义上分为:容器、算法和迭代器。迭代器是容器和算法的粘合剂。
又细分为六大组件:容器、算法、迭代器、仿函数、适配器、空间配置器;彼此间可以组合套用。
容器通过空间配置器取得数据存储空间,算法通过迭代器存储容器中的内容,仿函数可以协助算法完成不同的策略变化,适配器可以修饰仿函数。
总的来说,STL不仅是一个可复用的组件库,而且是包装了算法和数据结构的软件框架。
二、STL三大组件
1、容器
-
数组(array)、链表(list)、栈(stack)、队列(queue)、集合(set)、映射表(map)
-
根据数据在容器中的排列特性,分为序列式容器和关联式容器。序列式容器:强调值得排序,如Vector、Deque、List;关联式容器:元素在容器中并没有保存元素置入容器时得到逻辑顺序,如Set、Map。
2、算法 -
质变算法:用了之后会改变元素内容的方法,如替换、删除;
-
非质变算法:用了之后不会改变元素内容的方法,如查找、遍历。
3、迭代器到底是个啥东西呢?
迭代器它是一个抽象的设计概念,在程序里实际并没有直接对应于这个概念的实物。它是一种方法,能够遍历某个容器当中的元素,而又不用暴露该容器的内部表述方式。而我们操作的时候,可以把它理解为一个指针来操作。