STL-queue&stack

从0.5开始的C语言学习 / 2024-10-06 / 原文

STL queue&stack

queue主要包括循环队列queue和优先队列priority_queue两个容器

stack包含栈容器

include 头文件声明
#include <queue>
#include <stack>
声明
queue<int> q;

struct abc{…}; 
queue<abc> q; 	//结构体rec中必须定义小于号

priority_queue<int> q;		// 大根堆

priority_queue<int, vector<int>, greater<int> q;	// 小根堆

priority_queue<pair<int, int>>q;

stack声明和其他的容器类似

queue:

首先插入的元素将首先被提取,依此类推

有一个称为“前”的元素,它是位于最前位置或位于第一个位置的元素,也有一个名为“后”的元素,它是位于最后位置的元素

在普通队列中,元素的插入在尾部,而删除则从前面开始

优先队列是普通队列的扩展版本,对优先级最高的元素首先进行操作

/////

循环队列 queue

push 从队尾插入

pop 从队头弹出

front 返回队头元素

back 返回队尾元素

push()
pop()
front()
back()

超过限制会循环进行

/////

优先队列 priority_queue

push 把元素插入堆

pop 删除堆顶元素

top 查询堆顶元素(最大值)

push()
pop()
top()
stack:

首先插入的元素将在末尾提取,以此类推。有一个名为“top”的元素,它是位于最上面位置的元素

所有插入和删除操作都是在堆栈的顶部元素本身进行的

/////

push 向栈顶插入

pop 弹出栈顶元素

push()
pop()