标准模板库(STL)是一组C++模板类,提供常见的编程数据结构和函数,如列表、堆栈、数组等。包含容器类、算法和迭代器。是一个通用库,因此,它的组件是参数化的。模板类的知识是使用STL的先决条件。
STL 四大组件
- Algorithms
- Containers
- Functions
- Iterators
Algorithms
- Algorithm
- Numeric
Containers
序列容器:实现可按顺序访问的数据结构
- vector
- list
- deque
- arrays
- forward_list( Introduced in C++11)
容器适配器:为顺序容器提供不同的接口
关联容器:实现可快速搜索的排序数据结构(O(logn)复杂性)
无序关联容器:实现可以快速搜索的无序数据结构
- unordered_set (Introduced in C++11)
- unordered_multiset (Introduced in C++11)
- unordered_map (Introduced in C++11)
- unordered_multimap (Introduced in C++11)
![适配器容器和非顺序容器](https://i-blog.csdnimg.cn/blog_migrate/e30e8ff13037c6032de73361316a1560.png)
![容器和顺序容器](https://i-blog.csdnimg.cn/blog_migrate/88261c21425dbf9c46998f814aabc864.png)
Functions
STL包含重载函数调用运算符的类。这种类的实例称为函数对象或函子。函子允许在传递参数的帮助下自定义关联函数的工作。
Iterators
顾名思义,迭代器用于处理一系列值。它们是STL中允许通用性的主要特性。
Utility Library
定义头 <utility>