札记——C++STL
前言
-
- 容器(Containers):放数据,封装内存
-
- 分配器(Allocators ):支持容器,帮助分配内存(默认隐式)
-
- 算法(Algorithms):操作数据
不同于OO,模板化编程
-
- 迭代器(Iterators):容器和算法之间的桥梁,泛化的指针
-
- 适配器(Adapters):转换
-
- 仿函数(functors):作用像个函数,eg.两个类相加
找出整个容器从头到尾所有元素中>=40的元素个数
1.连续容器(sequence):
1.Array:
2.Vector:
3.Deque(戴克):
4.List:
只能用 list.sort();
5.Forward-list(在32bit机器上一个指针占用4个byte):
2.关联式容器(associative):
RB_tree 红黑树
以红黑树实现的,自动维持平衡,避免最坏查找
0. 树的遍历
1. 前序遍历
2. 中序遍历
3. 后续遍历
1.Set(独一无二):
Multiset(允许重复):
multiset: 允许键值重复;
key = data= value
- 自动排序,升序
- 无法通过迭代器iterator改变元素值;
- 可以通过迭代器iter++ 自动获取升序序列;
2.Map(独一无二)
#include <map>
std::map<char,int> mymap;
std::map<char,std::string> mymap;
mymap['a'