Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C++中的stack类、QT中的QStack类

C++中的stack类、QT中的QStack类

作者头像
诺谦
发布于 2018-04-27 09:17:00
发布于 2018-04-27 09:17:00
2.1K00
代码可运行
举报
文章被收录于专栏:Linux驱动Linux驱动
运行总次数:0
代码可运行

C++中的stack

实现一种先进后出的数据结构,是一个模板类.

头文件 #include<stack>

用法(以int型为例):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
stack <int> s;              //定义一个int型栈

s.empty();                        //返回栈是否为空

s.size();                        //返回当前栈中元素的个数  

s.push();                       //在栈顶上堆进一个元素

s.pop();                        //删除掉栈顶上的元素

s.top();                        //返回栈顶的元素,并不会删除  

代码示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <iostream>
#include <stack>
using namespace std;

int main()
{

       stack<int> s;
       cout<<"stack empty?  "<<s.empty()<<endl;
       for(int i=0;i<5;i++)
       {
              s.push(i);        //入栈
       }

       cout<<"stack empty?  "<<s.empty()<<endl;
       cout<<"stack size:   "<<s.size()<<endl;
       cout<<endl;

       for(int i=0;i<5;i++)
       {
              cout<<"stack top:  "<<s.top()<<endl;
              s.pop();                 //出栈     
       }
       return 0;
} 

QT中的QStack

它的父类是QVector,是个模板类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
头文件 #include <QStack>

常用用法(以int型为例):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
QStack <int> s;                         //定义一个int型栈

s. isEmpty();                           //返回栈是否为空

s.size();                                //返回当前栈中元素的个数  

s.push();                                //在栈顶上堆进一个元素

s.pop();                                 //删除掉栈顶上的元素,并返回这个元素

s.top();                                //返回栈顶的元素,并不会删除  

T &  operator[] ( int i );            //以数组形式访问队列元素

代码示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <QtGui>
#include <QStack>
#include <QDebug>
int main(int argc,char * argv[])
{
    QStack <int> s;            //定义一个int型栈
    qDebug()<<"Stack empty:  "<<s.isEmpty();  //返回栈是否为空
    for(int i=0;i<5;i++)
    {
         s.push(i);      //入栈
    }
    qDebug()<<"Stack empty:  "<<s.isEmpty();
    qDebug()<<"Stack size:  "<<s.size();
    for(int i=0;i<5;i++)
    {
     qDebug()<<"Stack top:  "<<s.pop();           //出栈,并查看当前栈顶第一个元素
    }
    qDebug()<<"Stack empty:  "<<s.isEmpty();
    qDebug()<<"Stack size:  "<<s.size();
    return 0;
}

运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Stack empty: true

Stack empty: false
Stack size: 5

Stack top: 4
Stack top: 3
Stack top: 2
Stack top: 1
Stack top: 0

Stack empty: true
Stack size: 0
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-04-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C++13-STL模板-栈stack
在线练习: http://noi.openjudge.cn/ https://www.luogu.com.cn/
用户2225445
2023/10/16
1820
C++13-STL模板-栈stack
【C++篇】从装书到抽书:用C++模拟实现“栈”的妙趣演绎
在日常生活中,我们经常会接触到一些具有“后进先出”特性的场景,例如堆叠书本、餐具摞放、撤销操作等。这些行为背后都暗含着栈(Stack)这一经典的数据结构概念。在程序设计中,栈以其操作简单、逻辑清晰的特点,广泛应用于表达式求值、括号匹配、递归调用等问题。
熬夜学编程的小王
2024/11/25
1010
C++STL容器stack
概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口
CtrlX
2022/09/29
2400
C++STL容器stack
c++中stack、queue、vector的用法一、栈(stack)二、队列(queue)三、向量(vector)
一、栈(stack) 引入头文件 #include<stack> 常用的方法 empty() 堆栈为空则返回真 pop() 移除栈顶元素 push() 在栈顶增加元素 size() 返回栈中元素数目 top() 返回栈顶元素 3.实例代码 #include<iostream> #include<stack> using namespace std; int main(){ //创建栈 s stack<int> s; //将元素压入栈 for(int i=0;i<10;i++)
致Great
2018/04/11
2.6K0
c++中stack、queue、vector的用法一、栈(stack)二、队列(queue)三、向量(vector)
C++STL模板库适配器之stack容器
Stl中的适配器,有栈 (stack) 队列 queue 根priority_queue 适配器都是包装了 vector list deque等顺序容器. 也可以看做是由这些容器实现的一个新的容器. 适配器没有提供迭代器.也不能同事插入或者删除多个元素.
IBinary
2019/05/25
4700
【c++丨STL】stack和queue的使用及模拟实现
本篇文章,博主将介绍STL中两个比较重要的容器适配器:stack(栈)和queue(队列)以及它们的使用方法,并且尝试模拟实现它们。如果你不是很了解栈和队列这两种数据结构,可以参阅这篇文章:
ephemerals__
2024/11/26
1530
【c++丨STL】stack和queue的使用及模拟实现
STL_stack
GeekLiHua
2025/01/21
750
STL_stack
C++栈和队列
将一个非负的十进制整数N转换为另一个等价的基为B的B进制数的问题,很容易通过”除B取余法”来解决。
谙忆
2021/01/19
5880
【stack和queue的模拟实现】—— 我与C++的不解之缘(十五)
​ stack 和 queue使用起来都非常简单,现在来模拟实现一下,理解其底层的原理。
星辰与你
2024/11/21
800
【stack和queue的模拟实现】—— 我与C++的不解之缘(十五)
【C++】STL 容器 - stack 堆栈容器 ① ( stack 堆栈容器特点 | stack 堆栈容器与 deque 双端数组容器对比 | 简单示例 )
C++ 语言中的 STL 标准模板库 中的 stack 堆栈容器 , 是一个 后进先出 ( LIFO , Last In First Out ) 的容器 , stack 容器提供了在栈顶进行插入和删除操作 ;
韩曙亮
2023/12/24
1680
【C++】STL 容器 - stack 堆栈容器 ① ( stack 堆栈容器特点 | stack 堆栈容器与 deque 双端数组容器对比 | 简单示例 )
【C++】stack and queue的介绍和模拟实现
六点半就起.
2024/10/16
720
【C++】stack and queue的介绍和模拟实现
【C++】STL容器适配器——stack类的使用指南(含代码使用)(17)
YY的秘密代码小屋
2024/01/22
2260
【C++】STL容器适配器——stack类的使用指南(含代码使用)(17)
C++大作业 题目一、二
【编程提示】 假设 a[max]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; i=5;k=5; 输出结果为: 原顺序表:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 删除结点后:1,2,3,4,10,11,12,13,14,15
HandSomeHe_In_Fzu
2022/11/21
4780
非递归遍历二叉树---c++写法
前序遍历的非递归算法 #include<iostream> using namespace std; #include<stack> struct node { char data; node*
大忽悠爱学习
2021/03/17
4940
c++ stack / queue 学习笔记
stack 先进后出的数据结构,只能对栈顶元素操作,不提供遍历功能 初始化 #include<iostream> #include<stack> using namespace std; int main() { stack<int>a; //构造空栈 stack<int> b(a); //拷贝构造,用a来创建b,使b和a一样 stack<int> c; c = a; //赋值,使c和b一样 } stack常用函数 #include<io
LRainner
2020/07/16
4650
C++奇迹之旅:快速上手Stack和Queue的使用与模拟实现
stack官网文档链接:https://legacy.cplusplus.com/reference/stack/stack/?kw=stack
学习起来吧
2024/09/13
680
C++奇迹之旅:快速上手Stack和Queue的使用与模拟实现
深入理解C++中的栈与队列:概念、底层机制与高效操作指南
在C++标准库中,stack(栈)和queue(队列)是两种重要的容器适配器,它们分别遵循后进先出(LIFO)和先进先出(FIFO)的操作原则。通过这些容器,我们可以高效地管理元素的插入、删除和访问,适用于多种实际编程场景。本文将详细介绍stack和queue的概念、底层实现、常用成员函数,以及它们在不同容器适配器中的应用,以帮助您深入理解并灵活运用这些数据结构。
suye
2024/10/16
9170
stack栈和stack栈数组
声明一个stack栈 stack<int> s1; stack<string> s2; stack中的操作 stack<int> s; s.push(x) 无返回值,将元素x压栈 s.pop(); 退栈,无返回值 s.top(); 取栈顶元素,返回栈顶元素 s.empty(); 判断栈是否为空,如果是空,返回1,否则返回0 s.size(); 返回栈中元素的个数 没有清空栈的操作函数,但是
知识浅谈
2020/03/23
4080
链栈 原
链栈就是栈结构的链表形式。其他的操作和数组表示栈一摸一样。 下面是具体的代码实现:
青木
2018/08/15
2100
C++ push方法与push_back方法
push与push_back是STL中常见的方法,都是向数据结构中添加元素。初识STL,对于添加元素的方法以产生混淆,这里暂对两种方法作出比较分析。此外,本文还将简述push对应的stack与queue系列,常见方法的介绍,以及与push_back相对应的vector系列常见方法介绍。详见下文。
狼啸风云
2020/07/26
4.3K0
相关推荐
C++13-STL模板-栈stack
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验