容器,置物之所也。

当然我是不喜欢这句话的…容器嘛,数据结构…存放数据的结构体…

常用的数据结构有如下几种类型:

array——数组

list——链表

tree——树

stack——栈

queue——队列

hash_table——散列表

set——集合

map——映射

等等…

容器概观与分类

这里是 SGI STL 的各种容器,本图以内缩进方式来表达基层与衍生层的关系

 

这里的衍生并非派生关系,而是内含关系。

例如:heap内含一个vector,priority_queue 内含一个heap

stack 和  queue 都内含一个 deque (其实也可以用list 和 vector来生成)

set map等等都内含 RBTree(红黑树)

hash_set … hash_map 都内含 hashtable(散列表)

 

序列式容器:

C++语言本身提供 array(数组)

STL 提供了 vector list deque stack queue priority_queue 等等。

这里会讨论以下容器的实现:

vector

list

deque

stack

queue

heap

priority_queue

slist

其中stack 和 queue 是一种配接器(适配器 adapter)。

 

关联式容器:

可以分为 set(集合) 和 map(映射表) 两大类。

它们的内部实现 多是 RBTree 或者 HashTable

所以会讨论以下知识点;

二叉搜索树

平衡二叉搜索树

AVLTree

单旋转 和 双旋转

RB-Tree

set

map

multiset

multimap

hashtable

hash_set

hash_map

hash_multiset

hash_multimap

 

【STL】容器概观与分类
Tagged on:
0 0 投票数
Article Rating
订阅评论
提醒

0 评论
内联反馈
查看所有评论