
STL
燕凌姣
以梦为马 不负韶华
展开
-
C++ STL学习之四:序列式容器list深入学习
特点:1)环状双向链表,对于任何位置的元素插入或删除是常数时间2)插入和接合不会使原有list迭代器失效list迭代器:不能以普通指针为迭代器,使用bidirectional iterator插入操作:本质是插入在…之前,新节点位于标示出插入点所指节点的前方,插入前的所有迭代器在插入后有效原创 2014-07-02 14:48:12 · 835 阅读 · 0 评论 -
C++ STL学习之二:序列式容器vector深入学习
vector的空间可扩充,支持随机存取访问,是一段连续线性的空间。所以它是动态空间,与之对比的array是静态的空间,不可扩充。简单来说,vector是数组的增强版。原创 2014-07-02 10:39:42 · 743 阅读 · 0 评论 -
C++ STL学习之三:序列式容器deque深入学习
deque是双端队列,它的空间构造并非一个vector式的长数组,而是“分段存储,整体维护”的方式;STL允许在deque中任意位置操作元素(删除添加)(这超出了deque的概念,最原始的deque将元素操作限定在队列两端),允许遍历,允许随机访问(这是假象);我们将看到,deque将是STL中stack和queue的幕后功臣,对deque做适当的修正,便可以实现stack和queue。原创 2014-07-02 10:12:31 · 812 阅读 · 0 评论 -
C++ STL学习之五:配接器stack深入学习
stack是一种先进先出的数据结构。只能在栈顶操作。它以底层容器完成所有的操作,因此是一个adapter(配接器)。原创 2014-07-02 15:28:50 · 627 阅读 · 0 评论 -
C++ STL学习之六:配接器queue深入学习
一,概述 先进先出的数据结构,底端加入元素,顶端移除元素,类似stack同样不能有遍历行为,没有迭代器。也是以既有容器为底端容器被归类为陪接器(container adapter),默认底端容器为deque。二,使用 #include using namespace std;三,方法queue:原创 2014-07-02 15:38:42 · 690 阅读 · 0 评论 -
C++ STL学习之七:配接器priority_queue深入学习
priority_queue是一个带有权值观念的队列,因此取出元素的时候只能取出权值最大的元素。 priority_queue完全以底层容器为根据(缺省为vector),加上heap处理规则实现。原创 2014-07-02 16:15:20 · 727 阅读 · 0 评论 -
C++ STL学习之八:关联式容器set深入学习
set和map的最大不同就是set是单值,而map是键值对, 当然set也可以理解成键值对相等的特殊键值对。这样讲的话,我们大概就知道了,它们的底层实现就是一个东西。那么multiset和set有什么区别呢?主要值能不能重复的问题,如果可以保存多个相同值的话就使用multiset否则就使用set。因为插入的时候,它们分别调用的是insert和unique_insert;同理,map和multima原创 2014-07-02 17:02:39 · 788 阅读 · 0 评论 -
C++ STL学习之九:关联式容器map深入学习
MAP容器 1)概念:map 是一个容器,它用于储存数据并且能从一个数据集合中取出数据。它的数据组成包含两项,一个是它的数据值,一个是用于排序的关键字。其中关键字是惟一的,它用于将数据自动排序。而每个元素的数据值与关键字无关,可以直接改变。 【重点】内部结构采用RB_TREE(红黑树)。查找复杂度:O(log2N)原创 2014-07-02 17:26:39 · 741 阅读 · 0 评论 -
C++ STL学习之一:STL概况
0. STL综述STL(Standard Template Library)C++模板库,该书剖析的是SGI版本的STL,是GNU C++的标准库。STL的价值:1.带给我们一套极具实用价值的零部件,一集一个整合的组织。2.STL带给我们一个高层次的,已泛型思维为基础的,系统化的,条理分明的“软件组件分类学”。STL六大组件:1.容器(vector, list, deque原创 2014-07-02 10:51:26 · 845 阅读 · 0 评论