STL基础概念
STL: standard templatelibrary
即标准模板库,包含了一些为C++提供的基础模版,可以用来实现输入输出,数学计算等功能。已经普遍内置于编译器中,使用时无需自己安装。
前言
STL是一个基础模版的集合,集合了大量算法和数据结构的成果,合理的使用可以实现各种存储方法和相关算法的高度优化
一、模版是什么?
基本的数据结构,如数组和链表等存在着存储和维护上的不便。如数组,需要提前规定数字的长度,即使申请动态内存也需要较多的操作。对于类来说,扩展类和派生类时,需要将所有相关类进行修改。而使用模版可以解决这类问题。通过模版可以创建通用类,将类型作为参数传递给模版,就可以创建实例。
模版类的声明和定义通过关键字template实现。
template <class T>
class List
{
public:
List();
}
使用模版的优点:
- 模版是C++内置的,类型安全。
- 能够参数化函数参数
- 当需要复制类,而导致复制大量代码时,可以使用模版来简化。
二、STL简介
1.构成
STL由容器,算法,迭代器,函数对象,适配器,内存分配器组成。- 容器:一些封装了数据结构的模版类
- 算法:一些模版函数
- 迭代器:实现对容器数据的操作
- 函数对象:重载为成员函数的运算符
- 适配器:调整类的接口,使得不同接口的类可以共同工作。
- 内存分配器:为容器提供内存分配和释放的功能。