STL容器概述

来源:互联网 发布:photoshop cs6 mac版 编辑:程序博客网 时间:2024/05/18 07:52
http://blog.csdn.net/wangfengwf/article/details/11580989

1.序列式容器
序列式容器在STL中主要包含常见的三种:向量vector、链表list和双端队列deque
1.1 向量vector为一种顺序存储同类型元素的数据结构。它是一种数组方式的思路实现,并且可以随机访问的序列。
1.2 链表list是一种实现双向链表数据结构的容器。它只支持顺序访问序列中的元素。该容器在删除、插入相应元素时,效率较高。另外,list可以与vector一样在需要时动态改变其大小。
1.3 双端队列deque是类似向量的一种队列结构。它允许在该队列的头部和尾部插入并且删除相应的元素。同时,它也支持针对其元素的顺序以及随机访问。

2.关联式容器
关联式容器则是采用了key-value键值的方式存储和访问容器中的元素。关联式容器采用树结构组织数据,支持快速、随机并且高效的检索其中的元素。关联式容器主要包含setmultisetmap以及multimap容器
2.1set容器支持随机存取,并且其键与对应的数据元素为同一个值。该容器中所有的元素必须是唯一的,不能包含重复的元素。
2.2multiset容器则在set基础上可以包含重复的元素。同样,该容器的键与对应的元素也是为同一值。
2.3map是一个包含键值对的容器。该结构中存放的键为索引使用的关键字,而对应的值则为真正存放的数据。该容器允许存在重复的键值,但每个键只能与一个值相互对应。
2.4multimap提供单个关键词可以对应多个数据的数据结构操作,供实际应用中选择使用。
顺序式容器与关联式容器在底层实现,通过不同的数据结构类型来区分。针对提供的不同的操作接口,用户并不需要了解具体容器底层实现,可以直接通过对外公布的接口访问对应的数据元素。而容器的设计实现则是主要基于数组、链表以及二叉树基本数据结构原型的底层实现。开发者通常只需要了解容器的基本功能以及应用场合,就能够在实际应用中选择合适的容器来处理相应的数据。


0 0
原创粉丝点击