當前位置:首頁 > 教育 > 正文

8 STL-stack

重新系統學習c++語言,并将學習過程中的知識在這裡抄錄、總結、沉澱。同時希望對刷到的朋友有所幫助,一起加油哦!

生命就像一朵花,要拼盡全力綻放!死磕自個兒,身心愉悅!

寫在前面,本篇章主要介紹STL中常用容器stack。

1.1 stack的基本概念

概念:

棧容器。

stack是一種先進後出(First In Last Out,FILO)的數據結構,它隻有一個出口。

可以這樣理解:

棧容器:可以想象成一隻放磚塊的小桶。

數據:是磚塊,先放入的隻能後拿出。即先進後出

先放入的磚塊放到桶底(棧底),後放入的磚塊在桶頂(棧頂)

8 STL-stack

編輯

stack特性:

  • 棧容器符合 先進後出
  • 棧中隻有棧頂元素才能被外界訪問到,因此不允許遍曆
  • 棧可以判斷容器是否為空,empty();
  • 棧可以返回元素個數,size();
  • 棧中進入數據稱為 入棧
  • 棧中拿出數據稱為 出棧
1.2 常用接口

構造函數:

  • stack stk; //stack采用模闆類實現,stack對象的默認構造形式
  • stack(const stack& stk); //拷貝構造函數

賦值操作:

  • stack& operator=(const stack& stk); //重載等号操作符

數據存取:

  • push(elem); //向棧頂添加元素
  • pop(); //從棧頂移除第一個元素
  • top(); //返回棧頂元素

大小操作:

  • empty(); //判斷堆棧是否為空
  • size(); //返回棧的大小

示例:


#include
#include
#include using namespace std; // 棧常用接口
void test() {
//stack stk; //stack采用模闆類實現, stack對象的默認構造形式
stack s1;
s1.push(1);
s1.push(2);
s1.push(3); //stack(const stack& stk); //拷貝構造函數
stack s2(s1); //賦值操作:
//stack& operator=(const stack& stk); //重載等号操作符
stack s3;
s3 = s1; //數據存取:
//push(elem); //向棧頂添加元素
//pop(); //從棧頂移除第一個元素
//top(); //返回棧頂元素
//大小操作:
//empty(); //判斷堆棧是否為空
//size(); //返回棧的大小
while (!s1.empty()) {
cout << "s1 的棧頂元素為:" << s1.top() << endl;
s1.pop();
}
cout << "s1 的size為" << s1.size() << endl;
} int main() {
test(); system("pause");
return 0;
}

總結

以上是真正的電腦專家為你收集整理的8 STL-stack的全部内容,希望文章能夠幫你解決所遇到的問題。

如果覺得真正的電腦專家網站内容還不錯,歡迎将真正的電腦專家推薦給好友。

你可能想看:

有話要說...

取消
掃碼支持 支付碼