0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是stack?

汽車電子技術(shù) ? 來源:C語言Plus ? 作者:Maye426 ? 2023-02-27 15:51 ? 次閱讀

一、什么是 stack?

stack 容器,又稱棧容器,是簡單地裝飾deque容器而成為另外的一種容器。

二、容器特性

1.單開口容器

實際上該容器模擬的就是棧存儲結(jié)構(gòu),即無論是向里存數(shù)據(jù)還是從中取數(shù)據(jù),都只能從一個開口實現(xiàn)操作。

2.不支持迭代器

只能通過固定的函數(shù)插入、訪問和刪除

三、基本函數(shù)實現(xiàn)

1,構(gòu)造函數(shù)

  • stack();創(chuàng)建一個空stack

2.元素的增加、獲取與刪除

  • void push(const T& x); 往棧中添加元素
  • reference top(const ); 獲取棧頂元素
  • void pop(const ); 刪除棧頂元素

5.判斷函數(shù)

  • bool empty() const;判斷容器中是否有元素,若無元素,則返回 true;反之,返回 false。

6.大小函數(shù)

  • int size() const;返回棧中元素的個數(shù)

7.其他函數(shù)

  • void swap(stack&);交換兩個同類型棧的數(shù)據(jù)

四、基本用法

#include
#include
using namespace std;
int main()
{
  stack<int> sk;
  sk.push(2);
  sk.push(3);
  sk.push(4);
  sk.push(5);
  //只能這樣去遍歷,但是遍歷玩后,所有的數(shù)據(jù)都會被刪除
  while (!sk.empty())
  {
    cout << sk.top() << " ";
    sk.pop();
  }
  cout << "\\n size:" << sk.size() << endl;
  return 0;
}

給大家布置一個小小的作業(yè),用棧實現(xiàn)類似vs的括號匹配檢查的程序~

比如:printf("plus";   檢測這個字符串會,顯示缺少右括號)
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    490

    瀏覽量

    22014
  • STACK
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    2783
收藏 人收藏

    評論

    相關(guān)推薦

    OpenHarmony語言基礎類庫【@ohos.util.Stack (線性容器Stack)】

    Stack基于數(shù)組的數(shù)據(jù)結(jié)構(gòu)實現(xiàn),特點是先進后出,只能在一端進行數(shù)據(jù)的插入和刪除。
    的頭像 發(fā)表于 05-10 15:54 ?424次閱讀
    OpenHarmony語言基礎類庫【@ohos.util.<b class='flag-5'>Stack</b> (線性容器<b class='flag-5'>Stack</b>)】

    #硬聲創(chuàng)作季 02-NO STACK 解析

    STACK
    發(fā)布于 :2022年10月26日 22:50:25

    An_SNMP_Agent_for_the_Microchip_TCPIP_Stack

    An SNMP Agent for the Microchip TCPIP Stack
    發(fā)表于 02-26 17:01 ?3次下載

    Freescale_BM_USB_Stack_v5.0

    Freescale_BM_USB_Stack_v5.0源代碼分享。
    發(fā)表于 06-02 17:13 ?19次下載

    m5stack-esp原理圖pdf資料下載

    m5stack-esp原理圖
    發(fā)表于 04-14 10:48 ?53次下載
    m5<b class='flag-5'>stack</b>-esp原理圖pdf資料下載

    級聯(lián)與STACK與IRF與集群間的相互區(qū)別

    級聯(lián)與STACK與IRF與集群間的相互區(qū)別(深圳核達中遠通電源技術(shù)有限公司招聘)-級聯(lián)與STACK與IRF與集群間的相互區(qū)別? ? ? ? ? ? ? ? ? ?
    發(fā)表于 08-31 19:59 ?11次下載
    級聯(lián)與<b class='flag-5'>STACK</b>與IRF與集群間的相互區(qū)別

    stack-ide-nvim Neovim插件

    ./oschina_soft/stack-ide-nvim.zip
    發(fā)表于 05-24 10:12 ?2次下載
    <b class='flag-5'>stack</b>-ide-nvim Neovim插件

    stack-ide基于Stack的IDE后端JSON接口

    ./oschina_soft/stack-ide.zip
    發(fā)表于 06-13 10:31 ?4次下載
    <b class='flag-5'>stack</b>-ide基于<b class='flag-5'>Stack</b>的IDE后端JSON接口

    如何使TI 15.4-Stack支持470M頻段

    如何使TI 15.4-Stack支持470M頻段
    發(fā)表于 11-01 08:26 ?0次下載
    如何使TI 15.4-<b class='flag-5'>Stack</b>支持470M頻段

    配備M5Stack的智能工廠

    電子發(fā)燒友網(wǎng)站提供《配備M5Stack的智能工廠.zip》資料免費下載
    發(fā)表于 12-09 10:19 ?0次下載
    配備M5<b class='flag-5'>Stack</b>的智能工廠

    帶Blynk的M5Stack

    電子發(fā)燒友網(wǎng)站提供《帶Blynk的M5Stack.zip》資料免費下載
    發(fā)表于 12-19 10:31 ?0次下載
    帶Blynk的M5<b class='flag-5'>Stack</b>

    重磅新品|CM4Stack

    //4月4日,M5精心打磨了一年之久的CM4Stack終于上架,發(fā)售當天,立即售罄。這款錯過要等幾個月的產(chǎn)品,有什么迷人之處?通過下面這個開箱視頻,我們可以先了解一下。上新啦CM4Stack是一款
    的頭像 發(fā)表于 04-14 10:39 ?867次閱讀
    重磅新品|CM4<b class='flag-5'>Stack</b>

    M5Stack圣誕雪球開源分享

    電子發(fā)燒友網(wǎng)站提供《M5Stack圣誕雪球開源分享.zip》資料免費下載
    發(fā)表于 06-28 10:26 ?0次下載
    M5<b class='flag-5'>Stack</b>圣誕雪球開源分享

    StickC M5Stack LED閃爍

    電子發(fā)燒友網(wǎng)站提供《StickC M5Stack LED閃爍.zip》資料免費下載
    發(fā)表于 06-29 11:35 ?0次下載
    StickC M5<b class='flag-5'>Stack</b> LED閃爍

    TI 15.4-Stack軟件

    電子發(fā)燒友網(wǎng)站提供《TI 15.4-Stack軟件.pdf》資料免費下載
    發(fā)表于 08-27 10:37 ?0次下載
    TI 15.4-<b class='flag-5'>Stack</b>軟件