认识 STL
STL(Standard Template Library)是一种C++的标准库,提供了一套模板类和函数,用于模板化常用的数据结构和算法。
STL的设计目标是提供一种通用的、高效的、可复用的编程工具,以减少程序员的工作量,并提高程序的开发效率和执行效率。通过使用STL,程序员可以避免重复实现常用的数据结构和算法,而是直接使用已经实现好的模板类和函数,从而大大提高开发效率。
STL的核心思想是泛型编程,即将算法和数据结构与具体的数据类型分离,以达到代码复用的目的。
STL的设计和实现充分考虑了性能和效率,通过使用模板和编译时多态等技术,STL的性能可以媲美手写的高效代码。同时,STL的接口设计也十分简洁和灵活,可以方便地与其他代码进行整合和扩展。
STL的核心组件有三个:容器(Containers)、迭代器(Iterators)和算法(Algorithms)。容器类提供了一种存储和管理数据的方式,迭代器类用于访问和遍历容器中的元素,算法类提供了对容器中数据进行操作的方式,如排序、查找等。
STL 六大部件:
容器 (Containers):提供了一种存储和管理数据的方式。
分配器(Allocators):负责动态分配和管理容器中的内存。日常简单使用时可以无需干预,STL 都会提供默认的分配器。
迭代器(Iterators):用于访问和遍历容器中的元素。
算法(Algorithms):提供了对容器中数据进行操作的方式,如排序、查找等。
适配器(Adapters):对容器或者接口进行适配后提供新的使用方式,(角色类似于电脑的电源适配器)。一般有容器适配器、迭代器适配器、仿函数适配器三种。
仿函数(Functors):一种可以像函数一样使用的对象,它可以作为函数参数传递,也可以作为函数返回值返回。
其中,容器、迭代器、算法是 STL 的三大核心组件。日常编程中使用的最多。
STL 常用的接口查询网站
- https://www.cppreference.com
- https://cplusplus.com/