标签:std deque vector STL back 剖析 源码 push
前言,对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的时候会自动释放空间
标签:std,deque,vector,STL,back,剖析,源码,push 来源: https://www.cnblogs.com/XDU-mzb/p/14939340.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。