zoukankan      html  css  js  c++  java
  • C++ 标准模板库(STL)-stack

    主要介绍一下C++11版本中标准模板库中栈的用法,希望可以帮到需要用的人。

    #include <iostream>
    #include <stack>
    #include <list>
    #include <vector>
    using namespace std;
    //c++11 STL stack
    
    
    typedef int T;
    int main()
    {
        
        //声明
        //底层容器默认为 deque
        stack<T> test;
        //底层容器为 list
        stack<T, list<T>> test1;
        /*
        stack<typename T, typename Container=deque<T>>
        stack 的模板有两个参数,第一个为存储的元素的类型,第二个是底层容器的类型(默认为deque,也可声明为其他类型,如list)
        */
        //初始化
        vector<T> data(10, 1);//vector初始化10个值为1的元素
        stack<T, vector<T>> test3(data);//stack不可以在初始化列表用对象初始化,但是可以用另一个容器初始化
        stack<T, vector<T>> test4{ test3 };
        stack<T, vector<T>> test4( test3 );//stack可以用拷贝构造函数进行初始化,两种括号均可
    
    
    
        //成员函数
        test.top();//返回栈顶元素的引用,类型为T&
        test.size();//返回栈顶元素的个数
        test.pop();//弹出栈顶元素,无返回值,
        test.push(1);//压栈,无返回值
        test.empty();//判断栈是否为空,空返回true,非空返回false
        test.emplace();//添加新的栈顶元素,无返回值,push的所有操作emplace都可以进行,但emplace可以在传入时构造函数
        //push与emplace详细区别 详细参考 https://blog.csdn.net/Kprogram/article/details/82055673
        stack<T> test0;
        test.swap(test0);//交换两个栈中所有元素,前提是类型必须相同
    
    
    
        return 0;
    }
  • 相关阅读:
    【51nod1674】区间的价值 V2(算法效率--位运算合并优化+链表实现)
    【bzoj 2339】[HNOI2011]卡农(数论--排列组合+逆元+递推)
    关于中国剩余定理{附【转】中国剩余定理 }
    JavaScript操作BOM
    学员操作—统计考试平均成绩
    JavaScript基础
    JDBC
    进制
    事务
    复习
  • 原文地址:https://www.cnblogs.com/zhanghad/p/12500924.html
Copyright © 2011-2022 走看看