《STL源码剖析》之容器

第四章序列式容器

##4.1 STL中容器的分类

  • 序列式容器
  • 关联式容器
    研究数据特定的排列方式,以利于搜寻或者排序或者其他目的,这一专门的学科成为数据结构(Data Structures).常用的数据结构有array,list,queue,deque,vector,stack,tree,list,hashtable,set,map等等。根据这些数据结构的特性可以分为序列式和关联式两种。其分类如下图
    这里写图片描述

4.11序列式容器

所谓序列式容器,其中的元素是可以排序的,但是又未必有序。C++内建了一种序列式容器array,STL另外提供了vector,list,deque,stack,queue,priority-queue.其中stack和queue是将deque改头换面而来,技术上被归结为一类配接器(adapter).

4.12关联式容器

所谓关联式容器,从观念上类似于关联式数据库:每组数据记录都有一个键值(key)和一个值(value),当元素被插入倒关联式容器的时候,容器内部结构(可能是红黑树,也可能是散列表)便依照其键值大小,以特定的规则将其放在合适的位置。关联式容器没有所谓的头尾,所以不会出现push_back(),pop_back(),push_front,begin(),end()这样的操作行为。
一般而言,关联式容器中的内部结构一般是一个平衡二叉树,以便得到较好的搜寻效率。平衡二叉树包括AVL-tree,RB-tree,AA-tree,其中被广泛运用于STL的是RB-tree.在讨论关联式容器之前我们首先讨论红黑树。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值