選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C++ 教程

C++ 主頁 C++ 簡介 C++ 入門 C++ 語法 C++ 輸出 C++ 註釋 C++ 變數 C++ 使用者輸入 C++ 資料型別 C++ 運算子 C++ 字串 C++ 數學 C++ 布林值 C++ If...Else C++ Switch C++ While 迴圈 C++ For 迴圈 C++ Break/Continue C++ 陣列 C++ 結構體 C++ 列舉 C++ 引用 C++ 指標

C++ 函式

C++ 函式 C++ 函式引數 C++ 函式過載 C++ 作用域 C++ 遞迴

C++ 類

C++ OOP C++ 類/物件 C++ 類方法 C++ 建構函式 C++ 訪問修飾符 C++ 封裝 C++ 繼承 C++ 多型 C++ 檔案 C++ 異常 C++ 日期

C++ 資料結構

C++ 資料結構與 STL C++ Vectors C++ List C++ Stacks C++ Queues C++ Deque C++ Sets C++ Maps C++ 迭代器 C++ 演算法

C++ How To

C++ 兩數相加 C++ 隨機數

C++ 參考

C++ 參考 C++ 關鍵字 C++ <iostream> C++ <fstream> C++ <cmath> C++ <string> C++ <cstring> C++ <ctime> C++ <vector> C++ <algorithm>

C++ 示例

C++ 示例 C++ 現實生活中的例子 C++ 編譯器 C++ 練習 C++ 測驗 C++ 證書


C++ 堆疊


C++ 堆疊

堆疊儲存多個元素,順序是特定的,稱為LIFO

LIFO後進先出 的縮寫。要形象地理解 LIFO,可以想象一疊煎餅,煎餅是同時從頂部新增和移除的。所以當移除一個煎餅時,它總是你最後新增的那個。這種組織元素的方式在計算機科學和程式設計中稱為 LIFO。

向量 不同,堆疊中的元素不能透過索引號訪問。由於元素是從頂部新增和移除的,您只能訪問堆疊頂部的元素。

要使用堆疊,您必須包含 <stack> 標頭檔案

// 包含 stack 庫
#include <stack>

建立堆疊

要建立堆疊,請使用 stack 關鍵字,並指定它應儲存的型別,放在尖括號 <> 中,然後是堆疊的名稱,例如: stack<type> stackName

// 建立一個名為 cars 的字串堆疊
stack<string> cars;

注意: 堆疊的型別(我們示例中的 string)在聲明後不能更改。

注意:您不能在宣告時新增元素,就像您可以對 向量 執行此操作一樣

stack<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};

新增元素

要在堆疊中新增元素,請在宣告堆疊後使用 .push() 函式

示例

// 建立一個名為 cars 的字串堆疊
stack<string> cars;

// 向堆疊新增元素
cars.push("Volvo");
cars.push("BMW");
cars.push("Ford");
cars.push("Mazda");

堆疊將如下所示(記住最後新增的元素是頂部元素)

Mazda (頂部元素)
福特
寶馬
沃爾沃


訪問堆疊元素

您不能透過引用索引號來訪問堆疊元素,就像您會使用 陣列向量 一樣。

在堆疊中,您只能訪問頂部元素,這是使用 .top() 函式完成的

示例

// 訪問頂部元素
cout << cars.top();  // 輸出 "Mazda"
自己動手試一試 »

更改頂部元素

您還可以使用 .top 函式來更改頂部元素的值

示例

// 更改頂部元素的值
cars.top() = "Tesla";

 // 訪問頂部元素
cout << cars.top();  // 現在輸出 "Tesla" 而不是 "Mazda"
自己動手試一試 »

移除元素

您可以使用 .pop() 函式從堆疊中刪除元素。

這將刪除最後新增到堆疊的元素

示例

// 建立一個名為 cars 的字串堆疊
stack<string> cars;

// 向堆疊新增元素
cars.push("Volvo");
cars.push("BMW");
cars.push("Ford");
cars.push("Mazda");

// 刪除最後新增的元素 (Mazda)
cars.pop();

// 訪問頂部元素 (現在是 Ford)
cout << cars.top();
自己動手試一試 »

獲取堆疊的大小

要查詢堆疊中有多少個元素,請使用 .size() 函式

示例

cout << cars.size();
自己動手試一試 »

檢查堆疊是否為空

使用 .empty() 函式來判斷堆疊是否為空。

如果堆疊為空,.empty() 函式返回 1 (true),否則返回 0 (false)

示例

stack<string> cars;
cout << cars.empty(); // 輸出 1 (堆疊為空)
自己動手試一試 »

示例

stack<string> cars;

cars.push("Volvo");
cars.push("BMW");
cars.push("Ford");
cars.push("Mazda");

cout << cars.empty();  // 輸出 0 (非空)
自己動手試一試 »

堆疊與佇列

堆疊通常與 佇列 一起提及,佇列是 下一頁 中描述的類似資料結構。


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援