来看:思维导图
什么是STL ?
C++提供的STL是标准模板库 ,它采用泛型编程的思想对常用数据结构(string vector list deque queue priority_queue)和算法进行封装 (remove remove_if 还有一些 排序等);具体的话就是六大组件了 最频繁的是vetor 的使用
底层封装了迭代器,算法的功能比较灵活。例如remove removeif
string 类的append()
那么他的灵活是怎么实现的? -------->仿函数 + lambda表达式
具体包含: 容器 算法 、迭代器、容器适配器 、仿函数 、空间配置器
什么是容器 ?
容器, 置物之所也~~
本质目的就是管理数据的 ,内部就封装了一些常用接口。
容器安连续与否 分为 两大类
1 序列式 string vector list deque
2 关联式 map系列/set系列/哈希
string 类中的深浅拷贝比较重要
容器 安实质来分两类
1 容器类 : list vector deque
2 容器适配器类 stack priority_queue queue
1 熟悉每个容器底层实现
2 熟悉map/set/unordered_map 区别
3 vector 和 list区别
2 算法
求解问题的步骤
分类:1 通用类型的算法
2 与容器相关的算法
衡量算法好坏: 时空复杂度
熟悉STL中常见的算法—>find/reverse/size()…
3 迭代器
迭代器是一种抽象的设计概念
提供一种方法,按照制定规则遍历容器中所有元素,而不会暴露容器的内部实现细节
4 适配器:
1 适配器是一种设计模式,
2 将一个类的接口转化为另一个类的接口,使原本接口不相容的class可以一起运作。
5 仿函数:
是一个函数类,具有h函数的功能
6 空间配置器
STL中空间配置器一般我们很少用到,但他确确实实存在,他总是在一切工作的身后,默默付出。