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

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

這篇具有很好參考價值的文章主要介紹了[C++] STL_stack && queue接口的模擬實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

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

1、stack

1.1 stack的介紹

stack的文檔介紹
[C++] STL_stack && queue接口的模擬實現(xiàn),C++,c++

1. stack是一種容器適配器,專門用在具有后進先出 操作的上下文環(huán)境中,其刪除只能從容器的一端進行元素的插入與提取操作。
2. stack是作為容器適配器被實現(xiàn)的,容器適配器即是對特定類封裝作為其底層的容器,并提供一組特定的成員函數(shù)來訪問其元素,將特定類作為其底層的,元素特定容器的尾部(即棧頂)被壓入和彈出。
3. stack的底層容器可以是任何標(biāo)準(zhǔn)的容器類模板或者一些其他特定的容器類,這些容器類應(yīng)該支持以下操作: empty:判空操作 back:獲取尾部元素操作 push_back:尾部插入元素操作 pop_back:尾部刪除元素操作
4. 標(biāo)準(zhǔn)容器vector、deque、list均符合這些需求,默認(rèn)情況下,如果沒有為stack指定特定的底層容器,默認(rèn)情況下使用deque。

1.2 stack的使用

函數(shù)說明 接口說明
stack() 構(gòu)造空的棧
empty() 檢測stack是否為空
size() 返回stack中元素的個數(shù)
top() 返回棧頂元素的引用
push() 將元素val壓入stack中
pop() 將stack中尾部的元素彈出

1.2.1 stack的構(gòu)造

[C++] STL_stack && queue接口的模擬實現(xiàn),C++,c++
棧的構(gòu)造、析構(gòu)等默認(rèn)成員函數(shù)不需要我們自己寫,因為它是自定義類型,會自動調(diào)用默認(rèn)成員函數(shù)。

1.2.2 進、出棧等接口的模擬實現(xiàn)

棧是deque(雙端隊列)容器適配器構(gòu)造的對象,因此stack的這些接口,只需要調(diào)用deque的接口來完成就可以,本質(zhì)是對deque的接口再封裝一層。
所以這些接口實現(xiàn)的都很簡單

template<class T, class Container = deque<T>> // 雙端隊列
class stack
{
public:
    stack()
    {}

    void push(const T& x)
    {
        _c.push_back(x);
    }

    void pop()
    {
        _c.pop_back();
    }

    T& top()
    {
        return _c.back();
    }

    const T& top()const
    {
        return _c.back();
    }

    size_t size()const
    {
        return _c.size();
    }

    bool empty()const
    {
        return _c.empty();
    }

private:
    Container _c;
};

2、queue

2.1 queue的介紹

queue的介紹文檔
[C++] STL_stack && queue接口的模擬實現(xiàn),C++,c++

1. 隊列是一種容器適配器,專門用于在FIFO上下文(先進先出)中操作,其中從容器一端插入元素,另一端提取元素。
2. 隊列作為容器適配器實現(xiàn),容器適配器即將特定容器類封裝作為其底層容器類,queue提供一組特定的成員函數(shù)來訪問其元素。元素從隊尾入隊列,從隊頭出隊列。
3. 底層容器可以是標(biāo)準(zhǔn)容器類模板之一,也可以是其他專門設(shè)計的容器類。該底層容器應(yīng)至少支持以下操作: empty:檢測隊列是否為空 size:返回隊列中有效元素的個數(shù) front:返回隊頭元素的引用 back:返回隊尾元素的引用 push_back:在隊列尾部入隊列
pop_front:在隊列頭部出隊列
4. 標(biāo)準(zhǔn)容器類deque和list滿足了這些要求。默認(rèn)情況下,如果沒有為queue實例化指定容器類,則使用標(biāo)準(zhǔn)容器deque。

2.2 queue的使用

函數(shù)聲明 接口說明
queue() 構(gòu)造空的隊列
empty() 檢測隊列是否為空,是返回true,否則返回false
size() 返回隊列中有效元素的個數(shù)
front() 返回隊頭元素的引用
back() 返回隊尾元素的引用
push() 在隊尾將元素val入隊列
pop() 將隊頭元素出隊列

2.2.1 queue構(gòu)造

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

這里與stack一樣,調(diào)用自定義類型的默認(rèn)成員函數(shù)。

2.2.2 入、出隊等接口的模擬實現(xiàn)

隊列也是deque(雙端隊列)容器適配器構(gòu)造的對象,只要調(diào)用它的接口來實現(xiàn)就可以,也是封裝了一層。文章來源地址http://www.zghlxwxcb.cn/news/detail-753700.html

template<class T, class Container = deque<T>>
class queue
{
public:
    queue()
    {}

    void push(const T& x)
    {
        _c.push_back(x);
    }

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

    T& back()
    {
        return _c.back();
    }

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

    T& front()
    {
        return _c.front();
    }

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

    size_t size()const
    {
        return _c.size();
    }

    bool empty()const
    {
        return _c.empty();
    }

private:
    Container _c;
};

到了這里,關(guān)于[C++] STL_stack && queue接口的模擬實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 容器適配器---deque和STL ---stack queue priority_queue的模擬實現(xiàn) C++

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

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

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

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

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

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

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

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

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

    2024年02月19日
    瀏覽(25)
  • STL之stack+queue的使用及其實現(xiàn)

    STL之stack+queue的使用及其實現(xiàn)

    所屬專欄:C“嘎嘎\\\" 系統(tǒng)學(xué)習(xí)?? ?? 博主首頁:初陽785?? ?? 代碼托管:chuyang785?? ?? 感謝大家的支持,您的點贊和關(guān)注是對我最大的支持?。?!?? ?? 博主也會更加的努力,創(chuàng)作出更優(yōu)質(zhì)的博文??!?? stack的文檔介紹 stack是一種容器適配器,專門用在具有后進先

    2024年02月21日
    瀏覽(15)
  • 【STL】stack與queue的底層原理及其實現(xiàn)

    【STL】stack與queue的底層原理及其實現(xiàn)

    (圖片來自知乎) 1.stack是一種 容器適配器 ,模擬了棧的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)只能從一端進去,另一端出來( 先進后出 )。 2.stack適配器 默認(rèn)是由 deque 容器實現(xiàn) 的,也可以顯示要求stack的底層封裝的容器類型。由于棧的特性, array 和 forward_list 不能用來構(gòu)造stack適配器 。 3.st

    2024年04月10日
    瀏覽(20)
  • STL容器適配器 -- stack和queue(使用+實現(xiàn))(C++)

    STL容器適配器 -- stack和queue(使用+實現(xiàn))(C++)

    棧和隊列數(shù)據(jù)結(jié)構(gòu)+畫圖分析如果對棧和隊列的結(jié)構(gòu)不了解的,可以先看該鏈接的內(nèi)容 使用stack時需要頭文件 #includestack stack是一種容器適配器,用于具有 后進先出 (LIFO)的環(huán)境中。只能從容器的一端(棧頂),執(zhí)行刪除、插入和提取操作。 stack是作為容器適配器實現(xiàn)的,容器

    2024年02月14日
    瀏覽(30)
  • stack&queue的模擬實現(xiàn)

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

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

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

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

    2024年02月16日
    瀏覽(27)
  • [C++隨筆錄] stack && queue模擬實現(xiàn)

    [C++隨筆錄] stack && queue模擬實現(xiàn)

    ???stack的容器適配器應(yīng)該選什么比較好呢? 首先, stack的特點是 頭部入, 尾部出 ? 尾插 和 尾刪操作比較頻繁 我們前面學(xué)過的容器有 vector 和 list, vector 和 list的尾插 和 尾刪的時間復(fù)雜度是 O(1) , 還是適合做容器適配器的. stack的基本結(jié)構(gòu) 用這個容器對象來進行模擬實現(xiàn)stac

    2024年02月06日
    瀏覽(28)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包