一、STL是什么
STL(standard template library):
C++标准模板库,是C++标准库的重要组成部分,不仅是一个可复用的组件库,还是一个包罗数据结构与算法的软件框架。
通俗来讲:
STL就是将常见的数据结构(顺序表、链表、栈、队列、堆、哈希……)以模板的方式进行封装,并提供一些通用灵活的算法。
二、STL的六大组件
1.容器
功能:组织数据,将常见的数据结构封装起来。
1.1序列式容器--线性结构
C++98提供:
string:动态类型顺序表(char)
vector:动态类型顺序表(任意类型数据)
list:带头节点双向循环链表
deque:双端队列
C++11提供:
array:静态类型顺序表
forward_list:带头节点单向循环链表
1.2关联式容器
map、set、multimap、multiset
2.算法
find、swap、reverse、sort……
3.迭代器
iterator、const_iterator、reverse_iterator、const_reverse_iterator
迭代器:本质是指针,用法与指针类似。
目的:让算法可以透明化的操作具体的容器。
4.适配器(配接器)
stack、queue、priority_queue
5.仿函数
greater、less……
仿函数可以像函数一样使用功能的对象,目的是可以让算法功能更加灵活。
6.空间配置器
allocator