先跳过类和对象部分,我们先来了解一下C++中的标准模板库。标准模板库,Standard Template Library,简称STL。STL作为C++的补充,包括了容器、算法和迭代器等内容,可以使得编程更加高效和简洁。容器实现了多个类型的数据结构和一些相关操作;算法提供了排序、查找、替换等功能,容器和算法之间则是通过迭代器进行衔接。
STL组件
STL是为了建立算法和数据结构之间的标准,它的代码中的绝大部分都采用了函数模板和类模板。主要有六大组件:
容器:各种数据结构,vector、list、map、set等
算法:常用的算法
迭代器:将算法和容器进行衔接
仿函数:行为类似函数,可以作为算法的某种策略,
适配器:修饰容器、迭代器或仿函数接口
空间配置器:顾名思义,配置和管理空间
前面三个是最核心的组件,需要重点掌握。
容器
容器就是装东西用的,这里装的就是数据,容器中的数据不同,用的容器也是不一样的,比如喝水用杯子,吃饭用碗,各种各样的容器有其自身的特殊用处。数据也是一样的,有数组,有链表等等,对于不同的数据要采用对应的容器。
容器主要是分为两类,一种是序列容器,一种是结合容器。
序列容器主要强调数据的顺序,该类容器中但是的数据都有一个固定的位置,但是容器中的元素并没有做排序操作,比如一组数据 1,3,4,2,0,那么容器中的存放的时候依然是1,3,4,2,0。但是结合容器中的元素是经过排序的,刚才的数据放入结合容器可能就是0,1,2,3,4这样的结果。
算法
算法就是用来解决问题的方法。STL提供了算法库,算法有四类:修正序列算法、非修正序列算法、排序算法和数值算法。
迭代器
迭代器作为容器和算法之间的通讯员,可以在容器内自由移动,按顺序访问容器中的各个元素,并且不需要暴漏容器的内部表示方式。打个比方,迭代器是通讯员,算法就是通行证,而容器就是凭借该通行证可以访问的通行区。每一个容器都有自己专属迭代器,迭代器类似于指向容器中元素的指针,包括输入、输出、前向、双向和随机访问迭代器。
STL的基本了解就到此,之后会分别进行主要组件的用法介绍。