STL相关的概念
STL 是3个单词缩写 标准 模板 库,这个里面,是C++在编译器内部自带,一些库,这些主要是通用化数据结构+算法,咱们原来学队列、链表、数组…,你不用操心,这些它已经帮你做了非常好的,具备非常通用型,一个库。咱们只需要学会怎么用就可以了,这里封装非常复杂,特别是迭代器。
这里代码,基本都是函数模板和类模板实现的
C++面向对象语言3种特点(有些人也叫C++ 3要素)
封装
继承
多态:
多态体现在 函数重载、运算符重载、虚函数、模板(函数模板和类模板)
C++:
耦合:关联,联系
对于我们自己C语言模块化编程,也要做到,高内聚,低耦合
所以,同学模块编程,不要在模块定义全局变量
STL广义上分3大组件:容器、算法、迭代器
如果细分6大组件:容器、算法、迭代器、适配器、空间配置器、仿函数
STL所谓容器:说白就是一些通用化的数据结构,比方链表、队列、栈、set map…,这个专门放数据地方
STL算法:就是对数据的处理一个一些典型方法,例如排序、复制、查找…
迭代器:这个实现内部非常复杂,很多书把它叫做泛型指针
STL 六大组件的交互关系,容器通过空间配置器取得数据存储空间,算法通过迭代器存储容器中的内容,仿函数可以协助算法完成不同的策略的变化,适配器可以修
饰仿函数。
算法分为 : 质变算法和非质变算法。
质变算法:是指运算过程中会更改区间内的元素的内容。例如拷贝,替换,删除等
等
非质变算法:是指运算过程中不会更改区间内的元素内容,例如查找、计数、遍
历、寻找极值等等
线性表:数组,存储空间是连续,这种叫做线性存储
链表:链式存储