Qt中QStack简单应用

原创 2015年07月10日 00:33:14

栈就是一种后进先出的数据结构,就是最先进入的数据在栈的最底下,最后才出来,最后进入的数据,在栈的顶端,最先出来。
下面利用栈实现了一个简单十进制到二进制的转换。
比如十进制的 10 转换为 二进制。必须明白数制之间是如何转换的。对于十进制到二进制的转换,是整除取余数,反复直到被转换数为0.

d r= d%2 d=d/2
10 0 5
5 1 2
2 0 1
1 1 0

算的时候余数的顺序为 0 1 0 1但是二进制结果却是 1010,所以他们的顺序恰好是相反的,所以利用栈很好实现。下面是在Qt中控制台下实现的。

#include <QCoreApplication>
#include<QDebug>
#include<QStack>
void T2T(int d);//转换函数
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
T2T(125);
qDebug()<<"test";
    return a.exec();
}

void T2T(int d)
{
    QStack<int> s;//栈
    int r;//保存余数

    while(d!=0)
    {
        r = d%2;
        s.push(r);//余数入栈
        d = d/2;//被转换数除以要转换为的进制数(二进制除2)
    }
    while(!s.isEmpty())
    {
        r =s.pop();//出栈
        qDebug()<<r;
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

Qt容器类(总结)(新发现的QQueue和QStack,注意全都是泛型)

 Introduction Qt库提供了一组基于模板的一般化的容器类。这些容器可以存储指定的类型的元素。例如,如果你需要一个可变大小的Qstring数组,可以用QVectorQString>....

Qt学习——堆栈窗体QStackedWidget类

这些窗体都比较类似,相对简单,就没什么可以深入研究的了。 下面用代码实现上面窗口的设计: 1.建立项目时基类选择QDialog,取消Gernerate form复选框的选中状...

C/C++ 数据结构之 栈的创建

顺序栈#include "stdafx.h" #include using namespace std; typedef int SElemType;typedef struct{ SElem...

Qt堆栈窗口QStackWidget

堆栈窗体QStackWidget类多与列表框QListWidget及下拉列表框QComboBox配合使用#include "dialog.h" #include "ui_dialog.h"#inclu...

QT的学习之路 3输入控件

三.输入控件 3.1 Input Widgets(可输入控件) 1.Combo Box 2.Font Combo Box 3.Line Edit 4.Text Edit 5...

解决qt里点击子窗口的按钮没有反应

debug发现是点击按钮的时候没有执行相应的slot函数。与主窗口不同,在子窗口里,click()对应的slot名字不能任意修改。需要到ui设计界面中,在按钮上点右键->go to slot,然后选择...
  • golzygo
  • golzygo
  • 2012年04月02日 07:54
  • 3666

qt简单应用

  • 2015年05月19日 14:25
  • 2.52MB
  • 下载

Qt编程5:使用QXmlStreamReader解析xml(简单应用)

1、准备xml包含内容如下:
  • jiezhj
  • jiezhj
  • 2014年06月12日 13:42
  • 3043

Qt实现QPushButton的简单应用

  • 2016年12月07日 19:54
  • 4KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt中QStack简单应用
举报原因:
原因补充:

(最多只允许输入30个字)