STL(Standard Template Library), 意思为标准模版库。
STL主要分为三个部分: 容器, 算法, 迭代器。
- algorithm(算法) - 对数据进行处理(解决问题) 步骤的有限集合
- container(容器) - 用来管理一组数据元素
- Iterator (迭代器) - 可遍历STL容器内全部或部分元素”的对象
我们在代码的实现过程中,往往会根据特定的需求实现相应的数据结构,比如,我们代码中需要一个动态数组(就是大小可以动态变化的),但是c/c++中是没有直接的动态数组可以使用的。所以我们需要自己去实现这个功能。
但是,在实现过程中会发现,我们会经常由于类型的不同去书写类似的代码,这样效率就很低了。
比如: 我们实现了一个存储int类型的动态数组,但是,过一段时间我们又希望动态数组又可以存储float,但是我们之前实现的是存放int数据的。所以,为了存放float类型的数据,需要将动态数组的代码重新写一遍,这显然很麻烦。
数据结构和算法在我们写代码的过程中经常会用到,所以c++就干脆将这些功能封装到标准库中,在我们使用的时候,直接引入头文件就可以使用相应的功能,这样就不用我们每次使用,都要去写这些代码,避免了重复造轮子。
因为实现STL时,使用了c++的模板,所以对于不同的类型,也就不需要我们自己去写,交给编译器就行了。
STL被组织为下面的13个头文 件:<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack> 和<utility>。
注意: STL中的方法很多,我们没必要去记忆,在使用时根据提示或者查看文档具体了解就行,先清楚基本的用法。