C++中的stack
实现一种先进后出的数据结构,是一个模板类.
头文件 #include<stack>
用法(以int型为例):
stack <int> s; //定义一个int型栈
s.empty(); //返回栈是否为空
s.size(); //返回当前栈中元素的个数
s.push(); //在栈顶上堆进一个元素
s.pop(); //删除掉栈顶上的元素
s.top(); //返回栈顶的元素,并不会删除
代码示例:
#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,是个模板类
头文件 #include <QStack>
常用用法(以int型为例):
QStack <int> s; //定义一个int型栈
s. isEmpty(); //返回栈是否为空
s.size(); //返回当前栈中元素的个数
s.push(); //在栈顶上堆进一个元素
s.pop(); //删除掉栈顶上的元素,并返回这个元素
s.top(); //返回栈顶的元素,并不会删除
T & operator[] ( int i ); //以数组形式访问队列元素
代码示例:
#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;
}
运行:
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
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有