Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【C++】STL详解(四)---Stack和Queue

【C++】STL详解(四)---Stack和Queue

作者头像
用户11367452
发布于 2025-05-31 05:10:58
发布于 2025-05-31 05:10:58
11600
代码可运行
举报
文章被收录于专栏:学习学习
运行总次数:0
代码可运行

Stack

Stack是一种容器,是基本的数据结构之一,特点是先进后出。

定义方式

方式一:普通定义方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
stack<int> st1;

方式二:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
stack<int,vector<int>> st2;
stack<int,list<int>> st3

注意: 如果没有为stack指定特定的底层容器,默认情况下使用deque。

使用方式

stack当中常用的成员函数如下:

成员函数

功能

empty

判断栈是否为空

size

获取栈有效元素个数

top

获取栈顶元素

push

元素入栈

pop

元素出栈

swap

交换两个栈的数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	stack<int, vector<int>> st;
	st.push(1);
	st.push(2);
	st.push(3);
	st.push(4);
	cout << st.size() << endl; //4
	while (!st.empty())
	{
		cout << st.top() << " ";
		st.pop();
	}
	cout << endl; //4 3 2 1
	return 0;

Queue

队列是一种容器适配器,专门用在具有先进先出操作的上下文环境中,其只能从容器的一端插入元素,另一端提取元素。

定义方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
queue的定义方式
方式一: 使用默认的适配器定义队列。
queue<int> q1;
方式二: 使用特定的适配器定义队列。
queue<int, vector<int>> q2;
queue<int, list<int>> q3;

使用方式

成员函数

功能

empty

判断队列是否为空

size

获取队列有效元素个数

front

获取队头元素

back

获取队尾元素

push

元素入队列

pop

元素出队列

swap

交换两个队列的数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
queue<int, list<int>> q;
	q.push(1);
	q.push(2);
	q.push(3);
	q.push(4);
	cout << q.size() << endl; //4
	while (!q.empty())
	{
		cout << q.front() << " ";
		q.pop();
	}
	cout << endl; //1 2 3 4
	return 0;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C++效率掌握之STL库:stack && queue函数全解
本篇是 STL 库专题之 stack 和 queue,本质就是栈和队列,关于该数据结构在初阶数据结构专栏里有详细的解释分析,本篇文章主要针对 stack 和 queue 的使用及拓展进行练习和介绍,建议熟悉好相关的数据结构知识再进行本篇学习
DARLING Zero two
2025/03/25
1300
C++效率掌握之STL库:stack && queue函数全解
【C++】STL——容器适配器 stack和queue 深度剖析及模拟实现 & 适配器模式的了解
🆗,那我们看到它的成员函数其实除了emplace其它的我们都是比较熟悉的。 另外,大家可能注意到,stack是不是没有迭代器啊,而我们之前学的string、vector、list都有啊,为什么呢?
YIN_尹
2024/01/23
9520
【C++】开始使用stack 与 queue
送给大家一句话: 忍受现实给予我们的苦难和幸福,无聊和平庸。 – 余华 《活着》
叫我龙翔
2024/04/19
1080
【C++】开始使用stack 与 queue
【C++】栈和队列的模拟实现(适配器模式)
比如说我们日常生活中用的充电器,就是一种电源适配器,本质就是对电流电压 转换成我们需要的大小。
羚羊角
2024/12/29
1170
【C++】栈和队列的模拟实现(适配器模式)
【深入探索 C++ STL 容器适配器 stack 和 queue】 —— 数据战场的神秘指挥官,掌控代码节奏的幕后黑手
C++ STL系列学习参考:STL 数据结构与算法__Zwy@的博客-CSDN博客
换一颗红豆
2024/12/20
1200
【深入探索 C++ STL 容器适配器 stack 和 queue】 —— 数据战场的神秘指挥官,掌控代码节奏的幕后黑手
(超级清晰带链接)STL--stack与queue(deque)--C++
从栈的接口中可以看出,栈实际是一种特殊的vector,因此使用vector完全可以模拟实现stack。具体实现如下:
小志biubiu
2025/02/27
960
(超级清晰带链接)STL--stack与queue(deque)--C++
【C++】Stack
stack是一种容器适配器,专门用来处理后进先出操作,其删除只能从容器的一端进行元素的插入和提取操作
s-little-monster
2024/09/13
1750
【C++】Stack
stack和queue
1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。
绝活蛋炒饭
2024/12/16
680
stack和queue
【C++】stack & queue
适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成我们希望的另外一个接口。
YoungMLet
2024/03/01
1170
【C++】stack & queue
【C++/STL】stack/queue的使用及底层剖析&&双端队列&&容器适配器
前面我们已经学习了list容器的相关知识,本文主要介绍STL中另外两种重要的结构,stack和queue。但是在STL中这两者并没有划分在容器范围内,而是将其称为容器适配器。
IsLand1314
2024/10/15
1850
【C++/STL】stack/queue的使用及底层剖析&&双端队列&&容器适配器
【C++】通过stack、queue、deque理解适配器模式
1. stack和queue的设计实际是一种模式,这种模式叫做适配器模式,设计理念就是用已有的东西封装转换出你想要的东西。我们前面还学习过的一种模式叫做迭代器模式,这种模式的设计理念就是封装底层实现的细节,对所有底层数据结构不同的容器,都能提供统一的访问方式。
举杯邀明月
2023/04/12
5300
【C++】通过stack、queue、deque理解适配器模式
【stack和queue的模拟实现】—— 我与C++的不解之缘(十五)
​ stack 和 queue使用起来都非常简单,现在来模拟实现一下,理解其底层的原理。
星辰与你
2024/11/21
890
【stack和queue的模拟实现】—— 我与C++的不解之缘(十五)
【c++丨STL】stack和queue的使用及模拟实现
本篇文章,博主将介绍STL中两个比较重要的容器适配器:stack(栈)和queue(队列)以及它们的使用方法,并且尝试模拟实现它们。如果你不是很了解栈和队列这两种数据结构,可以参阅这篇文章:
ephemerals__
2024/11/26
2310
【c++丨STL】stack和queue的使用及模拟实现
STL——stack容器和queue容器详解
大小操作: empty(); //判断堆栈是否为空 size(); //返回栈的大小
P_M_P
2024/01/18
1500
STL——stack容器和queue容器详解
【C++】stack and queue的介绍和模拟实现
六点半就起.
2024/10/16
990
【C++】stack and queue的介绍和模拟实现
【C++】STL--priority_queue和queue
1. 队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元 素,另一端提取元素。
用户11375356
2024/11/22
890
【C++】STL--priority_queue和queue
stack和queue及优先级队列和适配器(包括deque)的介绍
其实在数据结构中我们学习了栈和队列后我们在C++部分中学习起来stack和queue就很容易上手了!
ahao
2024/03/19
1970
stack和queue及优先级队列和适配器(包括deque)的介绍
【stack】【queue】【priority_queue】【deque】详解
通过观察文档我们不难发现,接口相较于之前的 string、vector 和 list 少了很多。它甚至连拷贝构造和析构都没有自己实现,然而这些都得益于容器适配器的使用。
利刃大大
2023/04/12
9940
C++初阶:容器适配器介绍、stack和queue常用接口详解及模拟实现
如你所见,尽管栈适配器的底层容器可能是vector,但它提供了与vector不同的操作接口。栈适配器隐藏了vector的细节,只暴露了栈的相关操作,使得我们可以更方便地使用栈这种数据结构。
是Nero哦
2024/02/19
2560
C++初阶:容器适配器介绍、stack和queue常用接口详解及模拟实现
探密 C++ STL — 深入理解 Stack 和 Queue 的实现与应用
在计算机科学中,数据结构是存储和组织数据的方式,使得我们可以高效地进行数据的访问和修改。在众多数据结构中,stack(栈)和 queue(队列)是两种非常基础且广泛应用的线性数据结构。C++ 提供了非常方便的标准库(STL)来实现 stack 和 queue,并且它们被广泛应用于各种算法和解决方案中。
用户11289931
2024/11/24
2230
推荐阅读
相关推荐
C++效率掌握之STL库:stack && queue函数全解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验