最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實(shí)現(xiàn)stack與queue數(shù)據(jù)結(jié)構(gòu)的模擬

 更新時(shí)間:2023年04月19日 09:04:36   作者:芒果再努力  
stack是一種容器適配器,專門用在具有后進(jìn)先出操作的上下文環(huán)境中,其刪除只能從容器的一端進(jìn)行 元素的插入與提取操作;隊(duì)列是一種容器適配器,專門用于在FIFO上下文(先進(jìn)先出)中操作,其中從容器一端插入元素,另一端提取元素

棧和隊(duì)列都是容器適配器搞出來的,對(duì)容器進(jìn)行封裝,從而實(shí)現(xiàn)先進(jìn)先出和后進(jìn)先出的結(jié)構(gòu)

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

常規(guī)實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的思路

template<class T>
class stack
{
public:
	//....
private:
	T* _a;
	size_t _size;
	size_t _capacity;
};

使用容器適配器:

**棧的容器適配器Container 可以使用vector list deque(雙端隊(duì)列) , 這些容器都必須支持尾插和尾刪接口 push_back 和 pop_back, **stack的默認(rèn)容器適配器使用deque

#pragma once
#include<iostream>
#include<deque>
using namespace std;
//棧的容量適配器Container 可以使用vector list deque-雙端隊(duì)列 
//必須支持尾插和尾刪 push_back  和 pop_back
//默認(rèn)的容量適配器使用deque
//  template<class T,class Container = std::vector<T>>
//  template<class T,class Container = std::list<T>>
namespace Mango
{
template<class T, class Container = std::deque<T>>
class stack
{
public:
	void push(const T& x)
		_con.push_back(x);
	void pop()
		_con.pop_back();
	//返回棧頂元素 - 即容器的最后一個(gè)元素
	T top()
		return _con.back();
	size_t size()
		return _con.size();
	bool empty()
		return _con.empty();
private:
	Container _con;//容器適配器
};
}

設(shè)配的容器給成模板參數(shù)->我有默認(rèn)的容器適配器,你也可以自己定義合適的,對(duì)容器進(jìn)行封裝,達(dá)到后進(jìn)先出的效果

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

隊(duì)列的容器適配器Container 必須支持pop_front 和push_back函數(shù) 尾插和頭刪.

所以可以使用list 和deque, 但是不能使用vector,因?yàn)椴恢С诸^刪pop_front函數(shù)

queue默認(rèn)的容器適配器使用deque

#pragma once
#include<iostream>
#include<deque>
using namespace std;
// 隊(duì)列的容器適配器Container 必須支持pop_front 和push_back  尾插和頭刪
// 所以可以使用list 和deque
// 但是不能使用vector,因?yàn)椴恢С诸^刪pop_front
//默認(rèn)的容量適配器使用deque
namespace Mango
{
template<class T, class Container = std::deque<T>>
class queue
{
public:
	//尾插
	void push()
		_con.push_back();
	//頭刪
	void pop()
		_con.pop_front();
	//取隊(duì)頭數(shù)據(jù) -返回隊(duì)頭數(shù)據(jù)的引用
	T& front()
		return _con.front();
	//取隊(duì)尾數(shù)據(jù) -返回隊(duì)尾數(shù)據(jù)的引用 
	T& back()
		return _con.back();
	size_t size()
		return _con.size();
	bool empty()
		return _con.empty();
private:
	Container _con;//容量適配器
};
}

到此這篇關(guān)于C++實(shí)現(xiàn)stack與queue數(shù)據(jù)結(jié)構(gòu)的模擬的文章就介紹到這了,更多相關(guān)C++ stack與queue模擬內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用C++進(jìn)行Cocos2d-x游戲開發(fā)入門過程中的要點(diǎn)解析

    使用C++進(jìn)行Cocos2d-x游戲開發(fā)入門過程中的要點(diǎn)解析

    這篇文章主要介紹了使用C++進(jìn)行Cocos2d-x游戲開發(fā)入門過程中的要點(diǎn)解析,主要針對(duì)畫面變化以及觸摸響應(yīng)方面,需要的朋友可以參考下
    2015-12-12
  • 淺析c語言中的內(nèi)存

    淺析c語言中的內(nèi)存

    在c++中,內(nèi)存分為5個(gè)區(qū),分別是棧區(qū),堆區(qū),自由存儲(chǔ)區(qū),全局/靜態(tài)存儲(chǔ)區(qū)和常量存儲(chǔ)區(qū).
    2017-09-09
  • C語言return, exit, abort的區(qū)別

    C語言return, exit, abort的區(qū)別

    這篇文章主要介紹了C語言return, exit, abort的區(qū)別,一般情況下,在C語言中退出一個(gè)程序用return,如果在main函數(shù)中,return在清理局部對(duì)象之后,會(huì)調(diào)用exit函數(shù),和return相比,exit并不會(huì)銷毀局部對(duì)象,下面一起進(jìn)入文章了解更詳細(xì)內(nèi)容吧,需要的朋友也可以參考一下
    2022-01-01
  • 非常經(jīng)典的C語言趣味題目

    非常經(jīng)典的C語言趣味題目

    在這個(gè)網(wǎng)站上發(fā)現(xiàn)一套很有趣的C語言測試題,如果你招聘C語言相關(guān)開發(fā)人員,或者正在學(xué)習(xí)C語言,很值得做一做
    2013-04-04
  • 基于Qt開發(fā)一個(gè)簡單的OFD閱讀器

    基于Qt開發(fā)一個(gè)簡單的OFD閱讀器

    這篇文章主要為大家詳細(xì)介紹了如何使用Qt框架開發(fā)一個(gè)功能強(qiáng)大且性能優(yōu)異的OFD閱讀器,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下
    2025-01-01
  • C語言八皇后問題解決方法示例【暴力法與回溯法】

    C語言八皇后問題解決方法示例【暴力法與回溯法】

    這篇文章主要介紹了C語言八皇后問題解決方法,簡單描述了八皇后問題并結(jié)合實(shí)例形式分析了C語言基于暴力法與回溯法解決八皇后的具體操作技巧,需要的朋友可以參考下
    2018-01-01
  • stl常用算法(Algorithms)介紹(stl排序算法、非變序型隊(duì)列)

    stl常用算法(Algorithms)介紹(stl排序算法、非變序型隊(duì)列)

    這篇文章主要介紹了stl常用算法(Algorithms)介紹(stl排序算法、非變序型隊(duì)列),需要的朋友可以參考下
    2014-05-05
  • C語言實(shí)現(xiàn)合式公式的判斷示例

    C語言實(shí)現(xiàn)合式公式的判斷示例

    這篇文章主要介紹了C語言實(shí)現(xiàn)合式公式的判斷示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 深入理解C++中的new和delete并實(shí)現(xiàn)對(duì)象池

    深入理解C++中的new和delete并實(shí)現(xiàn)對(duì)象池

    這篇文章主要介紹了C++中的new和delete并實(shí)現(xiàn)對(duì)象池,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 基于C++的拼多多算法在線筆試題示例

    基于C++的拼多多算法在線筆試題示例

    這篇文章主要介紹了基于C++的拼多多算法在線筆試題,列舉了四個(gè)拼多多的算法筆試題,包括分治法、大數(shù)相乘、貪心算法以及迷宮問題,需要的朋友可以參考下
    2017-08-08

最新評(píng)論

陆河县| 黑山县| 威远县| 卓尼县| 龙江县| 安多县| 化州市| 体育| 南郑县| 白玉县| 澜沧| 海宁市| 卢龙县| 呼和浩特市| 南充市| 治多县| 台东县| 巴彦淖尔市| 高邑县| 怀仁县| 海淀区| 兰坪| 阿瓦提县| 依安县| 嘉兴市| 裕民县| 尉氏县| 化隆| 玉林市| 建德市| 台安县| 绵阳市| 连云港市| 五峰| 衡阳县| 太保市| 周至县| 沅陵县| 广宗县| 濉溪县| 嘉祥县|