`
xinyiwust
  • 浏览: 13510 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

stl deque源码学习笔记

    博客分类:
  • C++
阅读更多
1.deque是一种优化了的、对序列两端元素进行添加和删除操作的基本序列容器。它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块,并且在一个映射结构中保存对这些块及其顺序的跟踪。向deque 两端添加或删除元素的开销很小。它不需要重新分配空间,所以向末端增加元素比vector 更有效。

2.deque的size()函数是常量级的:
size_type size() const { return _M_finish - _M_start; }


3.与vector相比较,deque没有内存再分配的消耗(vector在内存不够时会调用reserve()函数增加空间,但是会涉及到内存的移动)。

4.与list相比,deque可以进行比较快速的随机访问(尽管没有vector快,但性能是可以接受的)。

5.deque 是对vector 和list 优缺点的结合,它是处于两者之间的一种容器。

最后推荐大家两篇关于deque的文章:
stl_deque.h源码分析:http://blog.csdn.net/mdl13412/article/details/6647409,写的非常详细。
deque的性能测试研究:http://www.knowsky.com/394437.html
0
3
分享到:
评论

相关推荐

    STL的容器deque的使用

    **STL中的deque容器详解** `deque`(双端队列)是C++标准模板库(STL)中的一种重要容器,它提供了类似数组的功能,同时支持在两端进行高效插入和删除操作。与vector相比,deque在两端操作时通常具有更好的性能,...

    stl-deque.h (C++STL deque的源码)

    stl30版本中容器deque的源码

    STL源码剖析读书笔记

    STL源码剖析读书笔记 STL(Standard Template Library)的源码剖析读书笔记是对经典著作的总结,涵盖了STL的六大组件、空间分配器、迭代器、仿函式、适配器和容器等知识点。 1. 六大组件 STL提供六大组件,彼此...

    C++进阶STL源码笔记

    这份“C++进阶STL源码笔记”可能包含了对这些概念的实例解析,以及作者在学习过程中遇到的问题和解决方案,对于希望提升C++编程技能的人来说,是一份宝贵的参考资料。配合视频教程进行学习,可以让理论与实践相结合...

    SGI STL deque相关代码

    在STL中,`deque`(双端队列)是一种重要的容器,它允许在两端进行快速的插入和删除操作。本篇文章将深入探讨`deque`的实现原理、特性以及相关的编程实践。 `deque`,全称Double Ended Queue,其设计灵感来源于线性...

    C++标准库STL源码

    SGI STL的源码是学习和理解STL实现原理的宝贵资源。它展示了如何使用C++的语言特性和编程技巧来设计和实现高效、灵活、可重用的组件。通过研究SGI STL的源码,可以深入理解STL的内部工作机制,提高编程技能和设计能力...

    深入研究 C++中的 STL Deque 容器

    这篇深入研究C++中的STL `deque`容器的文章旨在探讨在什么情况下`deque`比`vector`更合适,并分析两者在内存管理和性能上的差异。 首先,`deque`和`vector`都允许动态存储和访问元素。然而,它们在内存分配上有显著...

    c++ -- stl 学习笔记

    这篇学习笔记将深入探讨STL的核心概念、主要组件以及其在实际编程中的应用。 首先,STL的核心概念是容器、迭代器、算法和函数对象。容器是STL提供的一系列数据结构,如vector(动态数组)、list(双向链表)、set...

    SGI STL源码.zip

    通过阅读和分析SGI STL的源码,开发者不仅可以学习到STL的工作原理,还能提升对C++模板机制的理解,这对于提高C++编程能力和优化效率有着极其重要的作用。此外,源码中的注释和设计决策也会提供宝贵的学习资源,帮助...

    STL(含源码)

    通过阅读源码,你可以学习到如何利用C++的模板机制来实现高效、灵活的代码,同时也能理解STL在性能优化上的技巧。 对于C++开发者来说,掌握STL是提升编程效率的关键。它不仅提供了丰富的数据结构和算法,还能帮助你...

    STL源码剖析高清PDF电子书

    《STL源码剖析》是由侯捷所著的一本深入探讨C++标准模板库(Standard Template Library,简称STL)源码的书籍。本书的作者侯捷(Hou Jie)是中国台湾著名的计算机技术作家,他在中国大陆和台湾地区拥有广泛的读者...

    STL源码剖析pdf及源码.zip

    通过深入学习《STL源码剖析》以及配套源码,开发者不仅能掌握STL的使用,还能提升对C++模板和泛型编程的掌握,这对于提高C++编程能力,尤其是系统级和库级别的开发工作,具有极大的帮助。此外,这种深度学习也将使...

    stl.rar_STL_STL源码下载_stl 源码_stl源码_visual c

    通过深入研究"stl.rar"中的源码,开发者不仅可以学习到STL的实现细节,还能理解模板元编程、设计模式等C++高级特性。这对于提升编程技巧,优化代码性能,以及解决实际问题都有极大的帮助。如果你打算研究STL源码,...

    SGI STL的源码

    在学习和研究SGI STL时,你可能会关注以下几个方面: - 泛型编程的概念和实现方式。 - SGI STL中各个容器的内部实现,如vector是如何实现动态增长的,set和map是如何利用红黑树保证O(log n)的插入和查找效率。 - ...

    stl源码剖析 stl源码剖析

    在学习STL源码的过程中,我们不仅能提升对C++模板机制的理解,还能学会如何设计和实现高效的数据结构和算法,这对于提升软件开发的效率和质量具有重大意义。此外,掌握STL源码剖析也有助于理解其他高级C++特性,如...

    STL源码剖析-简体中文PDF

    ### STL源码剖析 #### 书籍概述 《STL源码剖析》是一本深度解析C++标准模板库(Standard Template Library, STL)源代码的专业书籍。该书采用简体中文编写,提供了PDF格式的扫描版供读者使用。本书并非面向C++初学...

    STL源码剖析侯捷课件

    侯捷的课程可能深入讲解了STL的实现细节,并提供了源码分析,使得学习者能够达到深刻理解STL的目的。 2. C++设计模式:设计模式是软件工程中针对特定问题的通用解决方案,它们提供了一种经过验证的、可重用的编程...

    STL源码剖析!无水印!

    常见的STL容器包括vector、list、deque、set、map、queue、stack等。这些容器都具有共同的接口,以便于程序员使用和实现各种算法。 1.1 Vector容器 Vector容器是一种可变长数组,提供了高效的随机访问和插入操作。...

    标准库(STL)源码

    在这个压缩包文件中,我们可以找到STL的相关文档和源码,这对于深入理解STL的实现机制以及学习如何更有效地使用STL都是非常有帮助的。 首先,让我们详细了解一下STL中的核心组件: 1. 容器:容器是STL的核心,它们...

Global site tag (gtag.js) - Google Analytics