前言,对STL学习的总结
1.type_traits相关技术比较简单,略过
2.空间配置器allocator的分析见
https://www.cnblogs.com/XDU-mzb/p/14849837.html
3.配接器,仿函数、算法部分也不讲,比较简单
目录
1.deque
1.deque
这是一个比较复杂的容器,值得做一个分析
deque的功能
1.常数时间在头尾插入、删除
2.滋滋q[2]这样的随机访问
3.常数比较大
4.push_back push_front之后,迭代器不失效
5.什么时候使用deque
vector实现的环形队列可以很好的代替deque的功能
元素类型不能移动、拷贝、复制的时候,用deque
卡空间,vector可能导致空间不够用
std::vector::push_back() 是分摊 O(1)
std::deque::push_back() 是 O(1)
两者时间复杂度一致的情况下,std::vector虽然在平均情况下比较快,但std::deque在最差情况下有更好的表现
我认为最重要的两原因 : deque的实现保证,push之后迭代器不失效 + pop的时候会自动释放空间