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()
函式完成的
更改頂部元素
您還可以使用 .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()
函式
檢查堆疊是否為空
使用 .empty()
函式來判斷堆疊是否為空。
如果堆疊為空,.empty()
函式返回 1
(true),否則返回 0
(false)
示例
stack<string> cars;
cars.push("Volvo");
cars.push("BMW");
cars.push("Ford");
cars.push("Mazda");
cout << cars.empty(); // 輸出 0 (非空)
自己動手試一試 »
堆疊與佇列
堆疊通常與 佇列 一起提及,佇列是 下一頁 中描述的類似資料結構。