一、什么是 stack?
stack 容器,又稱棧容器,是簡單地裝飾deque容器而成為另外的一種容器。
二、容器特性
1.單開口容器
實(shí)際上該容器模擬的就是棧存儲結(jié)構(gòu),即無論是向里存數(shù)據(jù)還是從中取數(shù)據(jù),都只能從一個(gè)開口實(shí)現(xiàn)操作。
2.不支持迭代器
只能通過固定的函數(shù)插入、訪問和刪除
三、基本函數(shù)實(shí)現(xiàn)
1,構(gòu)造函數(shù)
- stack();創(chuàng)建一個(gè)空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;返回棧中元素的個(gè)數(shù)
7.其他函數(shù)
- void swap(stack&);交換兩個(gè)同類型棧的數(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;
}
給大家布置一個(gè)小小的作業(yè),用棧實(shí)現(xiàn)類似vs的括號匹配檢查的程序~
比如:printf("plus"; 檢測這個(gè)字符串會,顯示缺少右括號)
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
容器
+關(guān)注
關(guān)注
0文章
495瀏覽量
22060 -
STACK
+關(guān)注
關(guān)注
0文章
13瀏覽量
2794
發(fā)布評論請先 登錄
相關(guān)推薦
OpenHarmony語言基礎(chǔ)類庫【@ohos.util.Stack (線性容器Stack)】
Stack基于數(shù)組的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),特點(diǎn)是先進(jìn)后出,只能在一端進(jìn)行數(shù)據(jù)的插入和刪除。
An_SNMP_Agent_for_the_Microchip_TCPIP_Stack
An SNMP Agent for the Microchip TCPIP Stack
發(fā)表于 02-26 17:01
?3次下載
級聯(lián)與STACK與IRF與集群間的相互區(qū)別
級聯(lián)與STACK與IRF與集群間的相互區(qū)別(深圳核達(dá)中遠(yuǎn)通電源技術(shù)有限公司招聘)-級聯(lián)與STACK與IRF與集群間的相互區(qū)別? ? ? ? ? ? ? ? ? ?
發(fā)表于 08-31 19:59
?11次下載
重磅新品|CM4Stack
//4月4日,M5精心打磨了一年之久的CM4Stack終于上架,發(fā)售當(dāng)天,立即售罄。這款錯過要等幾個(gè)月的產(chǎn)品,有什么迷人之處?通過下面這個(gè)開箱視頻,我們可以先了解一下。上新啦CM4Stack是一款
StickC M5Stack LED閃爍
電子發(fā)燒友網(wǎng)站提供《StickC M5Stack LED閃爍.zip》資料免費(fèi)下載
發(fā)表于 06-29 11:35
?0次下載
評論