当前位置:首页 » 《休闲阅读》 » 正文

【C++航海王:追寻罗杰的编程之路】stack

8 人参与  2024年03月25日 09:17  分类 : 《休闲阅读》  评论

点击全文阅读


目录

1 -> stack的介绍和使用

1.1 -> stack的介绍

1.2 -> stack的使用

1.3 -> stack的模拟实现


1 -> stack的介绍和使用

1.1 -> stack的介绍

stack的文档介绍

1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。

2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。

3. stack的底层容器可以是任何标准的容器类模板或一些其他特定的容器类,这些容器类应该支持以下操作:

empty: 判空操作back: 获取尾部元素操作push_back: 尾部插入元素操作pop_back: 尾部删除元素操作

4. 标准容器vector、deque、list均符合这些需求,默认情况下,如果没有为stack指定特定的底层容器,默认情况下使用deque。

1.2 -> stack的使用

函数说明接口说明
stack()构造空的栈
empty()检测stack是否为空
size()返回stack中元素的个数
top()返回栈顶元素的引用
push()将元素val压入stack中
pop()将stack中尾部的元素弹出

相关题目:

最小栈

class MinStack {public:    void push(int val)     {        st.push(val);        if (Min.empty() || val <= Min.top())            Min.push(val);    }        void pop()     {        if (Min.top() == st.top())            Min.pop();        st.pop();    }        int top()     {        return st.top();    }        int getMin()     {        return Min.top();    }private:    stack<int> st;    stack<int> Min;};

栈的压入、弹出序列

class Solution {public:    bool IsPopOrder(vector<int>& pushV, vector<int>& popV)     {        if (pushV.size() != popV.size())            return false;                int in = 0;        int out = 0;        stack<int> st;        while (out < popV.size())        {            while (st.empty() || st.top() != popV[out])            {                if (in < pushV.size())                    st.push(pushV[in++]);                else                    return false;            }            st.pop();            out++;        }        return true;    }};

1.3 -> stack的模拟实现

从栈的接口可以看出,栈实际是一种特殊的vector,因此使用vector完全可以模拟实现stack。

#define  _CRT_SECURE_NO_WARNINGS 1#include<vector>#include<deque>using namespace std;namespace fyd{template<class T, class Container = deque<T>>class stack{public:void push(const T& x){_con.push_back(x);}void pop(){_con.pop_back();}const T& top(){return _con.back();}bool empty(){return _con.empty();}size_t size(){return _con.size();}private:Container _con;};}

感谢各位大佬支持!!!

互三啦!!!


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/85056.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 老公要娶狐狸做平妻,我杀疯了精选作品_陈默老公小少爷精彩分享_小说后续在线阅读_无删减免费完结_
  • 婆婆在我婚礼上跳钢管舞热门榜首_林昊婆婆周慧慧无错版_小说后续在线阅读_无删减免费完结_
  • 害我入狱,我成狱神后你们连跪都不配!独家番外_陆见秋柳盈盈新上_小说后续在线阅读_无删减免费完结_
  • 斗罗v:从逮到千仞雪偷窃开始成神完结版_陈晨胡列娜大反击_小说后续在线阅读_无删减免费完结_
  • 末世开火车,顺便捡了个机械神格高分神作_李昂诺亚独家首发_小说后续在线阅读_无删减免费完结_
  • 云清免费看_云舒小姐太后校园甜文_小说后续在线阅读_无删减免费完结_
  • 军训前,童养媳拿我的病历本给心上人叠纸飞机后,我退婚了完结爽文_杨鹤童养媳阿鹤一口气完结_小说后续在线阅读_无删减免费完结_
  • 未婚夫女兄弟把婚车改成宠物灵车,我反手让她的宾利变破烂最新阅读_魏成鸣乔诗诗林书妍小编推荐_小说后续在线阅读_无删减免费完结_
  • 军训当天男友为校花虐功勋犬,重生后我杀疯了潜力榜_顾野杜璇闻言大结局_小说后续在线阅读_无删减免费完结_
  • 天塌了!大佬们全被我捡回家了阿昭,小白,李惊雪小说整本+后续(阿昭,小白,李惊雪)清爽版阅读
  • 重生八零,我笑看真千金用土气布料卖港商免费阅读_妹妹姜雅沈俊爆款_小说后续在线阅读_无删减免费完结_
  • 秦昭:+后续人物讨喜无套路全集手握一把刀,砍翻万道!

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1