• 5.1 stack,queue以及priority_queue


    *:stack

    使用要包含头文件stack,栈是一种先进后出的元素序列,删除和访问只能对栈顶的元素(最后一个添加的元素)进行,并且添加元素只能添加到栈顶。栈内的元素不能访问,要想访问先要删除其上方的所有元素,使之变成栈顶元素才可以。

    1)定义

    template<class T,class Cout=deque<T>>

    class stark{

           .......

    };

    第二个参数表明,在默认情况下,stack都是用deque来实现的。也可以用指定的vector和list来实现。但不拥有顺序容器的成员函数。

    2)成员函数

    除了所有容器都有的成员函数size和empty外,还有push,top,pop三个成员函数。

    3)例

    //program 19.5.1.1.cpp  stack用于转换十进制数到k进制数
    #include <iostream>
    #include <stack> //使用stack需要包含此头文件
    using namespace std;
    int main()
    {
        int n,k;
        stack<int> stk;
        cin >> n >> k;  //将n转换为k进制数 
        if( n == 0) {
            cout << 0;
            return 0;
        }
        while( n ) {
            stk.push( n % k);
            n /= k;
        }
        while( ! stk.empty ()) {
            cout << stk.top();
            stk.pop();
        }
        return 0;
    }

    **:queue

    使用必须包含queue头文件。队列queue是先进先出。删除和访问只能发生在队尾,添加动作只能在队尾进行。

    1)定义

    template<class T,class Cout=deque<T>>

    class queue{

       .........

    };

    2)成员函数

    和stack类似,差别在于push发生在队尾,pop发生在队头。

    ***:priority_queue

    1)定义

    2)例

    //program 19.5.2.1.cpp  priority_queue用法示例
    #include <queue>
    #include <iostream>
    using namespace std;
    int main()  
    {
        priority_queue<double> pq1;
        pq1.push(3.2); pq1.push(9.8); pq1.push(9.8); pq1.push(5.4);
        while( !pq1.empty() ) {
            cout << pq1.top() << " ";    
            pq1.pop();
        } //上面输出 9.8 9.8 5.4 3.2
        cout << endl;
        priority_queue<double,vector<double>,greater<double> > pq2;
        pq2.push(3.2); pq2.push(9.8); pq2.push(9.8); pq2.push(5.4);
        while( !pq2.empty() ) {
            cout << pq2.top() << " ";    
            pq2.pop();
        }
        //上面输出 3.2 5.4 9.8 9.8
        return 0;
    }
  • 相关阅读:
    暂存未看的网址
    学习springboot+shiro的实际应用demo
    mapper.xml 的配置
    使用idea搭建Spring boot+jsp的简单web项目
    一文读懂SpringCloud与Eureka,Feign,Ribbon,Hystrix,Zuul核心组件间的关系
    .net core mvc 类库读取配置文件
    .net Core 2.0应用程序发布到IIS上注意事项
    Dapper扩展
    C# 请求Https
    js 记录
  • 原文地址:https://www.cnblogs.com/by-dxm/p/5475572.html
Copyright © 2020-2023  润新知