C++ STL容器适配器 内容详解
Posted 薛定谔的猫ovo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ STL容器适配器 内容详解相关的知识,希望对你有一定的参考价值。
C++ STL 容器适配器
容器适配器是一个封装了序列容器的类模板,它在一般序列容器的基础上提供了一些不同的功能。之所以称为适配器类,是因为它可以通过适配器现有的接口来提供不同的功能。
简单的理解容器适配器,其就是将不适用的序列式容器(包括 vector、deque 和 list)变得适用。
容器适配器本质上还是容器,只不过此容器模板类的实现,利用了大量其它基础容器模板类中已经写好的成员函数。当然,如果必要的话,容器适配器中也可以自创新的成员函数。
容器适配器主要包括:stack栈适配器、queue队列适配器、priority_queue优先队列适配器。
下面我简单介绍一下这三种容器适配器,关于具体的使用及实例,可以点击标题链接进行查看。
stack栈适配器
是一个封装了deque< T >容器的适配器类模板,默认实现的是一个后入先出(Last-In-First_Out, LIFO)的压入栈。
stack< T >模板定义在头文件#include<stack>中。
基础容器筛选条件:
基础容器需要包含以下成员函数:
- empty()
- size()
- back()
- push_back()
- pop_back()
满足条件的基础容器有vector、deque、list。
queue队列适配器
是一个封装了deque< T >容器的适配器类模板,默认实现的是一个先入先出(First-In-First_Out, FIFO)的队列。可以为它指定一个符合确定条件的基础容器。
queue< T >模板定义在头文件#include<queue>中。
基础容器筛选条件:
基础容器需要包含以下成员函数:
- empty()
- size()
- front()
- back()
- push_back()
- pop_front()
满足条件的基础容器有deque、list。
priority_queue优先队列适配器
是一个封装了vector< T >容器的适配器类模板,默认实现的是一个会对元素排序,从而保证最大元素总在队列最前面的队列。
priority_queue< T >模板定义在头文件#include<queue>中。
基础容器筛选条件:
基础容器需要包含以下成员函数:
- empty()
- size()
- front()
- push_back()
- pop_back()
满足条件的基础容器有vector、deque。
以上是关于C++ STL容器适配器 内容详解的主要内容,如果未能解决你的问题,请参考以下文章
C++STL之stackqueue的使用和模拟实现+优先级队列(附仿函数)+容器适配器详解
[C/C++]详解STL容器3--stackqueue和priority_queue的功能和模拟实现,deque和容器适配器的介绍
[ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解