【C++】【容器】容器适配器Stack,Queue,Priority Queue

本文介绍了C++中的三种容器适配器:Stack(后进先出)、Queue(先进先出)和Priority Queue(优先级队列)。Stack通常使用deque作为底层容器,提供push、pop和top等操作;Queue同样基于deque,包含front、back、push和pop等方法;Priority Queue是一个按优先级排序的队列,采用vector作为容器,允许自定义优先级比较规则。
摘要由CSDN通过智能技术生成

1 简介

Stack:后进先出(LIFO)
Queue:先进先出(FIFO)
Priority Queue:按照排序准则,自动将元素排序的Queue,下一个元素优先级总是最高
bitset:位域

2 Stack<>

1)头文件stack定义注意

  • 头文件
#include <stack>
  • 头文件内容
namespace std{
	template <typename T,
			typename Container = deque<T>>
		   class stack;
}

参数一表示类型,参数二表示此适配器使用的是deque。为什么使用deque不使用vector?因为deque移除元素时会释放内存,并且不必重分配时复制所有元素。

当然也可以使用其他容器来容纳元素,只需要此容器拥有back(),push_back(),pop_back()函数即可:

std::stack<int, std::vector<int>> st;

在这里插入图片描述

2)常用函数

st.push()//元素放进stack内
st.top()//返回下一个元素,可以对此元素值进行修改
st.pop()//stack中删除元素

st.empty()//stack是否为空
st.size()//stack的大小

注意:
pop只是删除并不返回,因此需要top与pop配合使用。
时常检查是否为空。

在这里插入图片描述

3 Queue(队列)

是一个数据缓冲构造。

1)头文件定义注意

#include <queue>

在头文件中的定义与stack同样使用了默认的deque。

2)常用函数

st.push()//进入队列
st.pop()//出队,但是并不返回元素,只是删除
st.front()//返回先进入的元素,也就是队头元素
st.back()//返回最后进入的元素,也就是队尾元素

注意:
front与back只返回元素,并不删除,而pop只删除,并不返回元素。

4 Priority Queue

带优先级的访问队列,优先级规则可以自己传入一个模板函数。
其函数为push、top、pop。
但是其使用的容器是vector。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值