vector:
优:不确定内存大小的数组的连续存储,可以像数组进行动态操作
随机访问方便,即支持[ ]操作符和vector.at()
节省空间
缺:在内部进行插入删除操作效率低
只能在vector的最后进行push和pop不能在vector的头进行push和pop
当动态添加的数据超过vector默认分配的大小时要进行整体的重新分配、拷贝和释放
list:
优:不使用连续内存完成动态操作,提高了内存的使用效率
在内部方便的进行插入和删除操作
可在两端进行push、pop
缺:不能进行内存的随机访问,即不支持[ ]操作符和vector.at()
相对于vector占用内存多
deque:
优:随机访问方便,即支持[ ]操作符和vector.at()
在内部方便的进行插入和删除操作
可在两端进行push、pop
缺:占用内存多
map是红黑树实现
set是集合 不包含重复元素,用平衡二叉树实现
for_each() 遍历[beg,end)间的元素 op--->函数指针或函数对象
函数对象优于函数指针
op还可传-lambda表达式 可方便地构造匿名函数,代码中存在大量的小函数,只被调用一次
算法要包含#include <algorithm>和#include <numeric>头文件
所有算法处理的都是半开区间[begin,end)