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

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

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

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

stack模擬實現(xiàn)

常規(guī)實現(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(雙端隊列) , 這些容器都必須支持尾插和尾刪接口 push_back 和 pop_back, **stack的默認容器適配器使用deque

#pragma once
#include<iostream>
#include<deque>
using namespace std;
//棧的容量適配器Container 可以使用vector list deque-雙端隊列 
//必須支持尾插和尾刪 push_back  和 pop_back
//默認的容量適配器使用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();
	//返回棧頂元素 - 即容器的最后一個元素
	T top()
		return _con.back();
	size_t size()
		return _con.size();
	bool empty()
		return _con.empty();
private:
	Container _con;//容器適配器
};
}

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

queue模擬實現(xiàn)

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

所以可以使用list 和deque, 但是不能使用vector,因為不支持頭刪pop_front函數(shù)

queue默認的容器適配器使用deque

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論

靖远县| 光山县| 晋宁县| 盈江县| 内江市| 锡林郭勒盟| 巢湖市| 蒙山县| 固安县| 广宁县| 色达县| 邢台县| 佳木斯市| 读书| 云安县| 若尔盖县| 和顺县| 泗阳县| 湖南省| 镇巴县| 东台市| 普陀区| 开化县| 苍南县| 普兰店市| 甘泉县| 庆云县| 大渡口区| 商河县| 逊克县| 布尔津县| 南丹县| 罗山县| 积石山| 永安市| 思南县| 大宁县| 南城县| 喜德县| 河东区| 张家口市|