首页 > 编程语言 > 详细

C++ 标准模板库(STL)-stack

时间:2020-03-15 23:22:10      阅读:84      评论:0      收藏:0      [点我收藏+]

主要介绍一下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;
}

 

C++ 标准模板库(STL)-stack

原文:https://www.cnblogs.com/zhanghad/p/12500924.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!