c++标准模板库容器分类

来源:互联网 发布:淘宝充值流量怎么查询 编辑:程序博客网 时间:2024/05/17 20:27

c++标准模版库中,容器总共分为三类:顺序容器、关联容器、容器适配器。

       顺序容器是一种线性结构的可序群集,底层实现依靠链表或数组。

        关联容器是一种非线性的树结构,数据以键值的格式保存。

      这两种在上上面两篇文章中具体介绍到,第三种容器为容器适配器。

      适配器顾名思义,就是让一个对象的行为符合另一个对象的行为的机制。容器适配器,就是一个接口,它让一种已存在的容器类型采用另一种不同的抽象类型的工作方式实现。c++  STL 中包含三种适配器:栈stack 、队列queue 和优先级priority_queue。

       STL 中提供的三种适配器可以由某一种顺序容器去实现。默认下stack 和queue 基于deque 容器实现,priority_queue 则基于vector 容器实现。当然在创建一个适配器时也可以指定具体的实现容器,创建适配器时在第二个参数上指定具体的顺序容器可以覆盖适配器的默认实现。

        由于适配器的特点,一个适配器不是可以由任一个顺序容器都可以实现的。

        栈stack 的特点是后进先出,所以它关联的基本容器可以是任意一种顺序容器,因为这些容器类型结构都可以提供栈的操作有求,它们都提供了push_back 、pop_back 和back 操作;

        队列queue 的特点是先进先出,适配器要求其关联的基础容器必须提供pop_front 操作,因此其不能建立在vector 容器上;

        优先级队列priority_queue 适配器要求提供随机访问功能,因此不能建立在list 容器上。
原创粉丝点击