1,vector,用的多,存的是值
using Group = std::vector<float>; c++11定义
typedef std::vector<float> Group ;c98定义
2 deque 用的多,存的是值
3,list ,实际用的少,双向链表,存的是指针
4,forward_list ,单项链表,存的是指针
注意:值,指针,sharepointer weakpointer 时间对比
5,set,存的是值,实际上用存的是指针,或者是基本类型,用的少
自定义类,放入set
结果:
自身find,和std的find不一样:自身find根据传入的比较参数查找,std::find根据子定义的重载==来查找
6,map,用的最多
insert 和emplace都是插入,推荐emplace
下图,访问元素 [],要求访问的map不能是const,因为查找的时候可能会改变
下图,访问元素 at,没那么多要求,可以是正常的,可以是const的map
真正生产时推荐下图
上面的代码简化,下图
7,unorderer ,没有顺序要求用这个
备注,下图,模板类的特化,用于key为自定义类, 需要定义hash算法,里面有返回key的方法