STL | stack 和 queue

stack

介绍

先进后出的适配器

头文件

#include <stack>

template <class Type, class Container = deque <type>>
class stack

初始化

stack();

// 使用容器来构造一个栈,并保持原容器中的元素顺序
explict stack(const container_type& right);

例:

#include <iostream>
#include <vector>
#include <stack>
using namespace std;


int main() {

	vector<int> vec = { 1, 3, 5, 7 };

	stack<int, vector<int>> st(vec);
	cout << st.top() << endl;  // 输出7
   
	return 0;
}

函数

empty

删除栈顶元素

void pop();

push

压栈

void push(const Type& val);

size

返回栈的长度

size_type size() const;

swap

void swap(stack&other) noexcept;

top

返回栈顶元素的引用

reference top();
const_reference top() const;

运算符

  • operator=
  • operator<
  • operator<=
  • operator==
  • operator>
  • operator>=

queue

queue

介绍

先进先出的适配器

头文件

#include <queue>

// 默认底层容器为deque,可以指定为其他容器
template <class Type, class Container = deque<Type>>
class queue

初始化

queue();

explicit queue(const container_type& right);

函数

back

返回最后一个元素的引用

reference back();
const_reference back() const;

empty

bool empty() const;

front

返回第一个元素的引用

reference front();
const_reference front() const;

pop

void pop();

push()

将元素添加到队列尾部

void push(const Type& val);

size

size_type size() const;

swap

void swap(queue& other) noexcept;

操作符

  • operator=
  • operator<
  • operator<=
  • operator==
  • operator>
  • operator>=

priority_queue

介绍

底层数据结构为堆
对元素进行排序,以便最大的元素始终在最前面

头文件

#include <queue>

template <class Type, class Container=vector<type>, 
          class Compare=less <typename Container:: value_type>>
class priority_queue

初始化

priority_queue();

// const Traits& _comp 是一个比较函数对象
explicit priority_queue(const Traits& _comp);
...
...

例:

// 默认大根堆, 即每次取出的元素是队列中的最大值
priority_queue<int> pri_que1; 
// 大根堆, 每次取出的元素是队列中的最大值,同第一行
priority_queue<int, vector<int>, less<int> > pri_que2; 
// 小根堆, 每次取出的元素是队列中的最小值
priority_queue<int, vector<int>, greater<int> > pri_que3; 

函数

  • empty
  • pop
  • push
  • size
  • swap
  • top

运算符

同queue

posted @   深蓝von  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示