選單
×
   ❮     
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++ 佇列

佇列儲存多個元素,遵循特定的順序,稱為FIFO

FIFO 代表先進先出。要理解 FIFO,可以想象超市裡排隊的人。第一個排隊的人也是第一個可以付款離開超市的人。這種組織元素的方式在計算機科學和程式設計中稱為 FIFO。

vector 不同,佇列中的元素不能透過索引號訪問。由於佇列元素在末尾新增,在開頭移除,您只能訪問開頭或末尾的元素。

要使用佇列,您必須包含 <queue> 標頭檔案

// 包含 queue 庫
#include <queue>

建立佇列

要建立佇列,請使用 queue 關鍵字,並在尖括號 <> 中指定它應儲存的值的型別,然後是佇列的名稱,例如:queue<type> queueName

// 建立一個名為 cars 的字串佇列
queue<string> cars;

注意:佇列的型別(在我們示例中為 string)在聲明後無法更改。

注意:您不能在宣告時新增元素,就像您可以對 vector 所做的那樣

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

新增元素

要將元素新增到佇列,您可以在宣告佇列後使用 .push() 函式。

.push() 函式將元素新增到佇列的末尾

示例

// 建立一個字串佇列
queue<string> cars;

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

佇列將如下所示

Volvo (隊首(第一個)元素)
寶馬
福特
Mazda (隊尾(最後一個)元素)


訪問佇列元素

您無法像使用 陣列vector 那樣透過索引號訪問佇列元素。

在佇列中,您只能使用 .front().back() 分別訪問隊首或隊尾的元素。

示例

// 訪問隊首元素(第一個也是最舊的)
cout << cars.front();  // 輸出 "Volvo"

// 訪問隊尾元素(最後一個也是最新的)
cout << cars.back();  // 輸出 "Mazda"
自己動手試一試 »

更改隊首和隊尾元素

您還可以使用 .front.back 來更改隊首和隊尾元素的值。

示例

// 更改隊首元素的值
cars.front() = "Tesla";

// 更改隊尾元素的值
cars.back() = "VW";

// 訪問隊首元素
cout << cars.front();  // 現在輸出“Tesla”,而不是“Volvo”

// 訪問隊尾元素
cout << cars.back();  // 現在輸出“VW”,而不是“Mazda”
自己動手試一試 »

移除元素

您可以使用 .pop() 函式從佇列中移除一個元素。

這將移除隊首元素(新增到佇列的第一個也是最舊的元素)。

示例

// 建立一個字串佇列
queue<string> cars;

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

// 移除隊首元素 (Volvo)
cars.pop();

// 訪問隊首元素(現在是 BMW)
cout << cars.front();
自己動手試一試 »

獲取佇列的大小

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

示例

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

檢查佇列是否為空

使用 .empty() 函式來查詢佇列是否為空。

.empty() 函式在佇列為空時返回 1true),否則返回 0false)。

示例

queue<string> cars;
cout << cars.empty(); // 輸出 1(佇列為空)
自己動手試一試 »

示例

queue<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 提供支援