标准模板库(Standard Template Library,简称STL)
(1)STL是一个具有工业强度的,高效的C++程序库
(2)它实现了诸多在计算机科学领域里常用的基本数据结构和基本算法
(3)STL主要包含了 容器、算法、迭代器
(4)STL系由Alexander Stepanov和Meng Lee等人创造于惠普实验室
(5)STL于1994年2月正式成为ANSI/ISO C++的一部分
容器
(1)容器是容纳、包含相同类型元素的对象,主要用类模板实现。
(2)序列型容器:也称作顺序容器,容器中的元素按线性结构组织起来(元素有前后关系),可以逐个读写元素。主要代表有vector(向量)、deque(双端队列)、list(双向链表)。
(3)关联型容器:关联容器通过键(key)存储和读取元素。主要有map(映射)、set(集合)等。
(4)容器适配器:是对前面提到的某些容器(如vector)进行再包装(再编写一些程序把他包装起来),使其变为另一种容器(功能上可能比前面的容器少)。典型的有栈(stack)、队列(queue)等。
迭代器
(1)是用于确定元素位置(元素在容器中位置)的数据类型,可用来遍历容器中的元素。
(2)通过迭代器可以读取、修改它指向的元素,它的用法和指针类似。
(3)每一种容器都定义了一种迭代器。
注意:实际上指针就是一种迭代器。
算法
(1)由许多函数模板组成的集合,实现了大量通用算法,用于操控各种容器。
(2)STL中提供的算法涉及到:比较、交换、查找、遍历、复制、修改、移除、反转、排序、合并等。大约有70中标准算法。
(3)算法通过迭代器来操纵容器中的元素。
(4)算法可以处理容器,也可以处理C语言的数组。