• 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=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

     

  • 相关阅读:
    Some good websites for C++
    Static Class in C#
    js提示后跳转代码集合
    日期格式化函数
    URL伪静态
    正则的一些使用
    提高.net网站的性能
    验证DropDownList的方法
    用C#去除字符串中HTML的格式
    drepdownlist不能动态绑定数据的原因
  • 原文地址:https://www.cnblogs.com/lifexy/p/8884121.html
Copyright © 2020-2023  润新知