C++中的stack类、QT中的QStack类
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=;i<;i++)
{
s.push(i); //入栈
} cout<<"stack empty? "<<s.empty()<<endl;
cout<<"stack size: "<<s.size()<<endl;
cout<<endl;
for(int i=;i<;i++)
{
cout<<"stack top: "<<s.top()<<endl;
s.pop(); //出栈
}
return ;
}
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=;i<;i++)
{
s.push(i); //入栈
}
qDebug()<<"Stack empty: "<<s.isEmpty();
qDebug()<<"Stack size: "<<s.size();
for(int i=;i<;i++)
{
qDebug()<<"Stack top: "<<s.pop(); //出栈,并查看当前栈顶第一个元素
}
qDebug()<<"Stack empty: "<<s.isEmpty();
qDebug()<<"Stack size: "<<s.size();
return ;
}
运行:
Stack empty: true Stack empty: false
Stack size: Stack top:
Stack top:
Stack top:
Stack top:
Stack top: Stack empty: true
Stack size:
C++中的stack类、QT中的QStack类的更多相关文章
- QT中QProcess调用命令行的痛苦经历
在QT程序中需要将某些目录和文件压缩为一个rar的压缩包,于是想到了在QT中通过QProcess类调用命令行的rar.exe来达到效果,但是没想到QProcess类用起来很麻烦,而且达不到效果,折腾了 ...
- QT中QProcess调用命令行的痛苦经历(调用Winrar,设置工作目录,获得输出,注意引号与括号,等等)
QT中QProcess调用命令行的痛苦经历 阅读目录 创建压缩包的方法 在QT中调用命令行 在QT中调用C++创建的dll 在QT程序中需要将某些目录和文件压缩为一个rar的压缩包,于是想到了在Q ...
- Qt中的标准对话框之QMessageBox
1. Qt标准对话框 Qt为开发者提供了一些可复用的对话框类型 Qt提供的可复用对话框全部继承自QDialog类 Qt中的对话框的使用方式和QDialog完全一致 2. 标准对话框的使用步骤 ①定义对 ...
- QT中的线程与事件循环理解(1)
1.需要使用多线程管理的例子 一个进程可以有一个或更多线程同时运行.线程可以看做是“轻量级进程”,进程完全由操作系统管理,线程即可以由操作系统管理,也可以由应用程序管理.Qt 使用QThread 来管 ...
- Qt中常用知识点
1:QRegExp 正则表达式 QRegExp regExp("[a-zA-Z][1-9][0-9]{0,2}"); xxx->setValidator(new QRegEx ...
- C# 类中的静态字段始终继承自基类
我们试想一下现在有一个类Parent,它有一个static的int类型字段number,然后如果类Parent有三个子类Child01.Child02和Child03,那么改变Parent.numbe ...
- Qt学习日记篇-Qt中使用Curl和jsonCpp
1.Qt中安装并使用jsonCPP库 1.1 官网下载.https://sourceforge.net/projects/jsoncpp/ 解压文件得到 jsoncpp-src-0.5.0 文 ...
- 用 Qt 中的 QDomDocument类 处理 XML 文件(上)
我们可以看到,如果所要读取的XML文件不是很大,采用DOM读取方法还是很便捷的,由于我用的也是DOM树读取的方法,所以,本文所介绍的也主要是基于DOM的方法读取. 根据常用的操作,我简单的把对XM ...
- QT中QWidget类简介
一.详细描述 QWidget类是所有用户界面对象的基类.通俗的来讲,Qt基本上所有的UI类都是由QWidget继承出来的,而QWidget继承于QObject, 大家可以查阅Qt source 即可 ...
随机推荐
- ssh框架 基本整合
struts的基本配置 <struts> <constant name="struts.devModel" value="true" /> ...
- 00SQL表字段说明
SELECT d.name 表名 , a.colorder 字段序号 , a.name 字段名 , ISNULL(g.[value], '') AS 字段说明 , ( CASE WHEN COLUMN ...
- java 静态变量 静态代码块 加载顺序问题
在网上看了一个这样的题目 public class StaticTest { public static void main(String[] args) { staticFunction(); } ...
- Vipe框架构思记
准备着手写一个JAVA框架,基于公司目前的框架提取出来.当然公司现在的框架也是我搭建的.在这整理一下思路. 框架名称:Vipe AOP,IOC容器:Spring MVC:Spring MVC ORM: ...
- 「总结」 MLEAutoMaton的各种板子总结
太菜了,所以咕了,欢迎评论留言... 网络流(不全) 自适应Simpson
- Drools规则引擎入门指南(一)
最近项目需要增加风控系统,在经过一番调研以后决定使用Drools规则引擎.因为项目是基于SpringCloud的架构,所以此次学习使用了SpringBoot2.0版本结合Drools7.14.0.Fi ...
- PHP安装BCMath扩展
我们都知道,大多数编程语言对于浮点型数据格式遵循 IEEE 754 标准,PHP也不例外,这就会导致在使用浮点数运算的过程中会有精度丢失的问题.PHP提供了BCMath库来支持更加精确的计算.但是我的 ...
- Python学习笔记【第二篇】:运算符、比较、关系运算符
运算符 python支持以下几种运算符 算术运算符 运算符 描述 实例 + 加 两个对象相加 a + b 输出结果 30 - 减 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 ...
- VS Code 快捷键大全
前言 VSCode的快捷键继承了一些IDE风格,有VS的身影,也有Emacs的身影..简言之,内置快捷键玩熟了,效率提高不是一点两点. VsCode 快捷键有五种组合方式(科普) 通用快捷键 基础编辑 ...
- 机器学习入门01 - 框架处理(Framing)
原文链接:https://developers.google.com/machine-learning/crash-course/framing (监督式)机器学习的定义:机器学习系统通过学习如何组合 ...