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

【C++】stack與queue的模擬實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了【C++】stack與queue的模擬實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

【C++】stack與queue的模擬實(shí)現(xiàn),C++,c++,開發(fā)語言

??樊梓慕:個(gè)人主頁

???個(gè)人專欄:《C語言》《數(shù)據(jù)結(jié)構(gòu)》《藍(lán)橋杯試題》《LeetCode刷題筆記》《實(shí)訓(xùn)項(xiàng)目》《C++》《Linux》《算法》

??每一個(gè)不曾起舞的日子,都是對(duì)生命的辜負(fù)


前言

stack與queue的實(shí)現(xiàn)比較簡(jiǎn)單,本篇不會(huì)有太大的篇幅,但值得我們學(xué)習(xí)的是『 適配器』的概念。


歡迎大家??收藏??以便未來做題時(shí)可以快速找到思路,巧妙的方法可以事半功倍。

=========================================================================

GITEE相關(guān)代碼:??fanfei_c的倉庫??

=========================================================================


1.適配器

stack與queue并不屬于容器,而是『 適配器』。

適配器其實(shí)就是對(duì)已經(jīng)存在的容器進(jìn)行封裝得到的。

在STL標(biāo)準(zhǔn)庫中,stack與queue的底層默認(rèn)使用deque容器。

【C++】stack與queue的模擬實(shí)現(xiàn),C++,c++,開發(fā)語言

【C++】stack與queue的模擬實(shí)現(xiàn),C++,c++,開發(fā)語言?deque我們本篇文章不介紹,大家只需要知道他類似于vector與list,并且deque具有他們兩個(gè)容器的特性即可。

適配器就像是我們的充電器,我國家庭電路電壓為220v,但卻可以通過不同的電源適配器達(dá)到不同的功率。

模板參數(shù)的這一用法我們上篇文章提到過:

當(dāng)我們不傳模板參數(shù)時(shí),stack與queue都默認(rèn)使用deque容器來構(gòu)建?;蛘哧?duì)列,但我們也可以自己設(shè)定模板參數(shù),就如同之前學(xué)習(xí)『 數(shù)據(jù)結(jié)構(gòu)』時(shí),棧或者隊(duì)列既有順序結(jié)構(gòu)也有鏈?zhǔn)浇Y(jié)構(gòu)一樣,在『 C++』中,我們只需要設(shè)定模板參數(shù),即可實(shí)現(xiàn)順序棧、順序隊(duì)列或者鏈棧、鏈隊(duì)列,這就體現(xiàn)出了模板參數(shù)的妙用。


2.模擬實(shí)現(xiàn)源碼

2.1stack

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();
	}

	size_t size()
	{
		return _con.size();
	}

	bool empty()
	{
		return _con.empty();
	}

private:
	Container _con;
};

2.2queue

template<class T, class Container = deque<T>>
class queue
{
public:
	void push(const T& x)
	{
		_con.push_back(x);
	}

	void pop()
	{
		_con.pop_front();
	}

	const T& front()
	{
		return _con.front();
	}

	const T& back()
	{
		return _con.back();
	}

	size_t size()
	{
		return _con.size();
	}

	bool empty()
	{
		return _con.empty();
	}

private:
	Container _con;
};

2.3如何實(shí)現(xiàn)底層基于vector或list的?;蜿?duì)列呢?

其實(shí)非常簡(jiǎn)單,就是將對(duì)應(yīng)的模板參數(shù)設(shè)定為vector或list即可,比如:

int main()
{
	stack<int,vector<int>> s;
	s.push(1);
	s.push(2);
	s.push(3);
	s.push(4);
	while (!s.empty())
	{
		cout << s.top() << " ";
		s.pop();
	}
	cout << endl;
	return 0;
}

另外注意:

  • 函數(shù)參數(shù)傳參是在『 使用時(shí)傳參』,傳遞的是『 對(duì)象』;
  • 模板參數(shù)傳參是在『 編譯時(shí)傳參』,傳遞的是『 類型』。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-820366.html

到了這里,關(guān)于【C++】stack與queue的模擬實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • [C++] STL_stack && queue接口的模擬實(shí)現(xiàn)

    [C++] STL_stack && queue接口的模擬實(shí)現(xiàn)

    stack的文檔介紹 1. stack是一種容器適配器,專門用在具有 后進(jìn)先出 操作的上下文環(huán)境中,其刪除只能從容器的一端進(jìn)行元素的插入與提取操作。 2. stack是作為容器適配器被實(shí)現(xiàn)的,容器適配器即是對(duì)特定類封裝作為其底層的容器,并提供一組特定的成員函數(shù)來訪問其元素,將

    2024年02月05日
    瀏覽(25)
  • C++:stack、queue、priority_queue增刪查改模擬實(shí)現(xiàn)、deque底層原理

    C++:stack、queue、priority_queue增刪查改模擬實(shí)現(xiàn)、deque底層原理

    我們先來看看 stack的相關(guān)接口有哪些: 從棧的接口,我們可以知道棧的接口是一種特殊的vector,所以我們完全可以使用vector來模擬實(shí)現(xiàn)stack。 因此我們可以將底層容器定義成模板,然后將容器類變量作為成員變量進(jìn)行封裝。在實(shí)現(xiàn)satck的各種接口時(shí),通過成員變量來調(diào)用底層

    2024年02月03日
    瀏覽(24)
  • 【C++】——棧和隊(duì)列(stack、queue)及優(yōu)先隊(duì)列(priority_queue)的介紹和模擬實(shí)現(xiàn)

    【C++】——棧和隊(duì)列(stack、queue)及優(yōu)先隊(duì)列(priority_queue)的介紹和模擬實(shí)現(xiàn)

    今天我們來學(xué)習(xí)C++stl六大組件的其中一種,容器適配器,stack、queue及priority_queue都是容器適配器。我們循序漸進(jìn),接下來讓我們先認(rèn)識(shí)一下什么是容器適配器。 適配器是一種設(shè)計(jì)模式(設(shè)計(jì)模式是一套被反復(fù)使用的、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)),該

    2024年02月08日
    瀏覽(25)
  • 【C++】STL中的容器適配器 stack queue 和 priority_queue 的模擬實(shí)現(xiàn)

    【C++】STL中的容器適配器 stack queue 和 priority_queue 的模擬實(shí)現(xiàn)

    適配器是一種設(shè)計(jì)模式 (設(shè)計(jì)模式是一套被反復(fù)使用的、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)),該種模式是將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。 例如我們常見的充電器就是一種適配器,它將我們常用的220V交流電壓轉(zhuǎn)化為4,5V (或者其他更高的電

    2023年04月26日
    瀏覽(24)
  • 容器適配器---deque和STL ---stack queue priority_queue的模擬實(shí)現(xiàn) C++

    目錄 一、容器適配器 deque原理 deque的缺陷 deque的優(yōu)勢(shì) 二、stack的模擬實(shí)現(xiàn) ?三、queue的模擬實(shí)現(xiàn) 四、優(yōu)先級(jí)隊(duì)列的模擬實(shí)現(xiàn) 適配器是一種設(shè)計(jì)模式(設(shè)計(jì)模式是一套被反復(fù)使用的、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)),該種模式是將一個(gè)類的接口轉(zhuǎn)換成客戶

    2024年02月02日
    瀏覽(26)
  • C++初階:容器適配器介紹、stack和queue常用接口詳解及模擬實(shí)現(xiàn)

    C++初階:容器適配器介紹、stack和queue常用接口詳解及模擬實(shí)現(xiàn)

    介紹完了list類的相關(guān)內(nèi)容后:C++初階:適合新手的手撕list(模擬實(shí)現(xiàn)list) 接下來進(jìn)入新的篇章,stack和queue的介紹以及模擬: stack是一種容器適配器,專門用在具有后進(jìn)先出操作的上下文環(huán)境中,其刪除只能從容器的一端進(jìn)行元素的插入與提取操作。 stack是作為容器適配器

    2024年02月19日
    瀏覽(25)
  • C++入門之stl六大組件--stack和queue源碼深度剖析及模擬實(shí)現(xiàn)

    目錄 前言 一、stack的介紹和使用 1.stack的介紹 2.stack的使用 3.stack的模擬實(shí)現(xiàn) 二、queue的介紹和使用 1.queue的介紹 2.queue的使用 3.queue的模擬實(shí)現(xiàn) 三、priority_queue的介紹和使用 1.priority_queue的介紹 2.priority_queue的使用 3.priority_queue的模擬實(shí)現(xiàn) 3.1解決一個(gè)topK問題 四、容器適配器 1

    2024年02月14日
    瀏覽(22)
  • 【C++】STL中stack,queue容器適配器的模擬實(shí)現(xiàn)(使用deque容器)

    【C++】STL中stack,queue容器適配器的模擬實(shí)現(xiàn)(使用deque容器)

    ??博客主頁: 主頁 ??系列專欄: C++ ??感謝大家點(diǎn)贊??收藏?評(píng)論?? ??期待與大家一起進(jìn)步! 雖然stack和queue中也可以存放元素,但在STL中并沒有將其劃分在容器的行列,而是將其稱為容器適配器,這是因?yàn)閟tack和隊(duì)列只是對(duì)其他容器的接口進(jìn)行了包裝,STL中stack和

    2024年02月15日
    瀏覽(31)
  • stack&queue的模擬實(shí)現(xiàn)

    stack&queue的模擬實(shí)現(xiàn)

    stack模擬: stack的源代碼: stack的全部源代碼就這些。 stack的代碼少,原因在于采用了適配器模式,所謂適配器,以電器為例,每個(gè)電器都有電源適配器,中國的家用電源為220V的交流電,但是幾乎沒有電器需要220V的交流電,所以每個(gè)電器都有一個(gè)電源適配器,將家庭電壓轉(zhuǎn)換

    2024年02月06日
    瀏覽(21)
  • 模擬實(shí)現(xiàn)stack類與queue類

    前言: 本章我們將學(xué)習(xí) stack 與 queue 的基本使用以及模擬實(shí)現(xiàn)。與前面已經(jīng)學(xué)過的容器不同, stack 與 queue 屬于 STL 六大組件之一的容器適配器范疇。 在 STL 中, stack 是一個(gè)模板類,用于實(shí)現(xiàn)棧數(shù)據(jù)結(jié)構(gòu)。棧是一種后進(jìn)先出(LIFO)的數(shù)據(jù)結(jié)構(gòu),可以在棧頂進(jìn)行插入和刪除操作

    2024年02月16日
    瀏覽(28)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包