欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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ì)列都是容器適配器搞出來(lái)的,對(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)文章

  • Qt使用TabWidget實(shí)現(xiàn)多窗體功能

    Qt使用TabWidget實(shí)現(xiàn)多窗體功能

    Qt 是一個(gè)跨平臺(tái)C++圖形界面開(kāi)發(fā)庫(kù),利用Qt可以快速開(kāi)發(fā)跨平臺(tái)窗體應(yīng)用程序,在Qt中我們可以通過(guò)拖拽的方式將不同組件放到指定的位置,本章將重點(diǎn)介紹TabWidget標(biāo)簽組件的常用方法及靈活運(yùn)用,需要的朋友可以參考下
    2023-12-12
  • VSCode插件開(kāi)發(fā)全攻略之package.json詳解

    VSCode插件開(kāi)發(fā)全攻略之package.json詳解

    這篇文章主要介紹了VSCode插件開(kāi)發(fā)全攻略之package.json的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易掃雷程序

    C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易掃雷程序

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易掃雷程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 基于C++類型重定義的使用詳解

    基于C++類型重定義的使用詳解

    本篇文章是對(duì)C++中類型重定義的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++超集C++/CLI模塊的基本類型

    C++超集C++/CLI模塊的基本類型

    這篇文章介紹了C++超集C++/CLI模塊的基本類型,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • C++中的對(duì)象指針總結(jié)

    C++中的對(duì)象指針總結(jié)

    以下是對(duì)C++中的對(duì)象指針進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-10-10
  • 實(shí)例解析C++中類的成員函數(shù)指針

    實(shí)例解析C++中類的成員函數(shù)指針

    這篇文章主要介紹了C++中類的成員函數(shù)指針,例子中以討論用函數(shù)指針調(diào)用類的成員函數(shù)為主,需要的朋友可以參考下
    2016-04-04
  • C++控制臺(tái)版掃雷游戲

    C++控制臺(tái)版掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C++控制臺(tái)版掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++簡(jiǎn)單QQ程序服務(wù)器端的實(shí)現(xiàn)代碼

    C++簡(jiǎn)單QQ程序服務(wù)器端的實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了C++簡(jiǎn)單QQ程序服務(wù)器端的實(shí)現(xiàn)代碼,感興趣的朋友可以參考一下
    2016-05-05
  • protobuf c++編程筆記

    protobuf c++編程筆記

    這篇文章主要介紹了Protobuf的c++編程筆記,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08

最新評(píng)論