国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C++航海王:追尋羅杰的編程之路】stack

這篇具有很好參考價值的文章主要介紹了【C++航海王:追尋羅杰的編程之路】stack。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1 -> stack的介紹和使用

1.1 -> stack的介紹

1.2 -> stack的使用

1.3 -> stack的模擬實現


【C++航海王:追尋羅杰的編程之路】stack,C++,c語言,開發(fā)語言,visualstudio,后端,c++

1 -> stack的介紹和使用

1.1 -> stack的介紹

【C++航海王:追尋羅杰的編程之路】stack,C++,c語言,開發(fā)語言,visualstudio,后端,c++

stack的文檔介紹

1. stack是一種容器適配器,專門用在具有后進先出操作的上下文環(huán)境中,其刪除只能從容器的一端進行元素的插入與提取操作。

2. stack是作為容器適配器被實現的,容器適配器即是對特定類封裝作為其底層的容器,并提供一組特定的成員函數來訪問其元素,將特定類作為其底層的,元素特定容器的尾部(即棧頂)被壓入和彈出。

3. stack的底層容器可以是任何標準的容器類模板或一些其他特定的容器類,這些容器類應該支持以下操作:

  • empty:?判空操作
  • back: 獲取尾部元素操作
  • push_back: 尾部插入元素操作
  • pop_back: 尾部刪除元素操作

4. 標準容器vector、deque、list均符合這些需求,默認情況下,如果沒有為stack指定特定的底層容器,默認情況下使用deque。

【C++航海王:追尋羅杰的編程之路】stack,C++,c語言,開發(fā)語言,visualstudio,后端,c++

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://www.zghlxwxcb.cn/news/detail-850941.html

到了這里,關于【C++航海王:追尋羅杰的編程之路】stack的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【C++航海王:追尋羅杰的編程之路】C++11(上)

    【C++航海王:追尋羅杰的編程之路】C++11(上)

    目錄 1 - C++11簡介 2 - 統(tǒng)一的列表初始化 2.1 - {}初始化 2.2 - std::initializer_list 3 - 聲明 3.1 - auto 3.2 - decltype 3.3 - nullptr 在2003年C++標準委員會曾經提交了一份技術勘誤表(簡稱TC1),使得C++03這個名字已經取代了 C++98稱為C++11之前的最新C++標準名稱。不過由于C++03(TC1)主要是對C++98標準中

    2024年04月23日
    瀏覽(31)
  • 【C++航海王:追尋羅杰的編程之路】探尋實用的調試技巧

    【C++航海王:追尋羅杰的編程之路】探尋實用的調試技巧

    目錄 1 - 什么是bug? 2 - 調試是什么?有多重要? 2.1 - 調試是什么? 2.2 - 調試的基本步驟 2.3 - Debug和Release的介紹 3 - Windows環(huán)境調試介紹 3.1 - 調試環(huán)境的準備 3.2 - 學會快捷鍵 3.3 - 調試的時候查看程序當前信息 3.3.1 - 查看臨時變量的值 3.3.2 - 查看內存信息 3.3.3 - 查看調用堆棧

    2024年04月12日
    瀏覽(21)
  • 【C++航海王:追尋羅杰的編程之路】繼承你學會了么?

    【C++航海王:追尋羅杰的編程之路】繼承你學會了么?

    目錄 1 - 繼承的概念及定義 1.1 - 繼承的概念 1.2 - 繼承的定義 1.2.1 - 定義格式 1.2.2 - 繼承關系和訪問限定符 1.2.3 - 繼承基類成員訪問方式的變化 2 - 基類和派生類對象賦值轉換 3 - 繼承中的作用域 4 - 派生類的默認成員函數 5 - 繼承與友元 6 - 繼承與靜態(tài)成員 7 - 復雜的菱形繼承及

    2024年04月16日
    瀏覽(31)
  • 【C++航海王:追尋羅杰的編程之路】關于模板,你知道哪些?

    【C++航海王:追尋羅杰的編程之路】關于模板,你知道哪些?

    目錄 1 - 泛型編程 2 - 函數模板 2.1 - 函數模板概念 2.2 - 函數模板格式 2.3 - 函數模板的原理 2.4 - 函數模板的實例化 2.5 - 函數參數的匹配原則 3 - 類模板 3.1 - 類模板的定義格式 3.2 - 類模板的實例化 怎樣實現一個通用的交換函數? 使用函數重載雖然可以實現,但是有幾個不好的

    2024年02月20日
    瀏覽(25)
  • 【C++航海王:追尋羅杰的編程之路】關于模板,你知道哪些?

    【C++航海王:追尋羅杰的編程之路】關于模板,你知道哪些?

    目錄 1 - 非類型模板參數 2 - 模板的特化 2.1 - 概念 2.2 - 函數模板的特化 2.3 - 類模板的特化 2.3.1 - 全特化 2.3.2 - 偏特化 2.3.3 - 類模板特化應用實例 3 - 模板分離編譯 3.1 - 什么是分離編譯 3.2 - 模板的分離編譯 3.3 - 解決方法 4 - 模板總結 模板參數分為類型形參與非類型形參。 類型

    2024年04月11日
    瀏覽(23)
  • 【C++航海王:追尋羅杰的編程之路】priority_queue(優(yōu)先隊列) | 容器適配器你知道哪些?

    【C++航海王:追尋羅杰的編程之路】priority_queue(優(yōu)先隊列) | 容器適配器你知道哪些?

    目錄 1 -?priority_queue的介紹和使用 1.1 -?priority_queue的介紹 1.2 -?priority_queue的使用 1.3 -?priority_queue的模擬實現 2 - 容器適配器 2.1 - 什么是適配器 2.2 - STL標準庫中stack和queue的底層結構 2.3 - deque的介紹 2.3.1 - deque的原理介紹 2.3.2 - deque的缺陷 2.4 - 為什么選擇deque作為stack和queue的底

    2024年04月10日
    瀏覽(46)
  • 【C++歷練之路】stack||queue||底層原理知多少

    【C++歷練之路】stack||queue||底層原理知多少

    W...Y的主頁 ?? 代碼倉庫分享??? ??前言: C++標準模板庫(Standard Template Library,STL)是C++語言的一個重要組成部分,提供了一組通用的數據結構和算法,以便開發(fā)人員能夠高效地編寫可重用的代碼。STL中的兩個常用容器,即stack(堆棧)和queue(隊列),在許多應用中都是非

    2024年02月04日
    瀏覽(20)
  • C++高級編程——STL:deque容器、stack容器和queue容器

    本專欄記錄C++學習過程包括C++基礎以及數據結構和算法,其中第一部分計劃時間一個月,主要跟著黑馬視頻教程,學習路線如下, 不定時更新,歡迎關注 。 當前章節(jié)處于: ---------第1階段-C++基礎入門 ---------第2階段實戰(zhàn)-通訊錄管理系統(tǒng), ---------第3階段-C++核心編程, -----

    2024年01月24日
    瀏覽(16)
  • 【C/C++】C語言開發(fā)者必讀:邁向C++的高效編程之旅

    【C/C++】C語言開發(fā)者必讀:邁向C++的高效編程之旅

    ?? 作者簡介 :阿里巴巴嵌入式技術專家,深耕嵌入式+人工智能領域,具備多年的嵌入式硬件產品研發(fā)管理經驗。 ?? 博客介紹 :分享嵌入式開發(fā)領域的相關知識、經驗、思考和感悟,歡迎關注。提供嵌入式方向的學習指導、簡歷面試輔導、技術架構設計優(yōu)化、開發(fā)外包等

    2024年03月20日
    瀏覽(30)
  • 【星計劃★C語言】c語言初相識:探索編程之路

    【星計劃★C語言】c語言初相識:探索編程之路

    ??個人主頁: 聆風吟_ ??系列專欄: 星計劃★C語言、Linux實踐室 ??少年有夢不應止于心動,更要付諸行動。 C 語言為什么叫 C 語言呢?其實是因為先有高級語言 ALGOL 60(簡稱 A 語言),后來它經過簡化變?yōu)?BCPL 語言(改進后稱為 B 語言),而 C語言是在 B 語言的基礎之上發(fā)

    2024年04月15日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包