queue的常見用法詳解

2021-09-26 20:26:54 字數 2064 閱讀 8821

queue翻譯為佇列,是乙個先進先出的容器,要使用queue,應先新增標頭檔案#include,並在標頭檔案下面加上「using namespace std;」。

定義的寫法和其他stl容器相同, typename可以是任意基本資料型別或容器:

queuename;
由於佇列( queue)本身就是一種先進先出的限制性資料結構,因此在stl中只能通過front()來訪問隊首元素,或是通過 back()來訪問隊尾元素

程式**:

#include#includeusing namespace std;

int main()

printf("%d %d\n",q.front(),q.back()) ; //輸出對頭元素 1 和 隊尾元素 5

return 0;

}

執行結果:

push(x)可將x壓入佇列,時間複雜度為o(1)。例項見「queue容器內元素的訪問」。

front()和back()可分別獲得隊首元素和對微元素,時間複雜度為o(1)。例項見「queue容器內元素的訪問」。

令隊首元素出隊,時間複雜度為o(1)。

程式**:

#include#includeusing namespace std;

int main()

for(int i=1;i<=3;i++)

printf("%d\n",q.front()) ; //輸出對頭元素 4

return 0;

}

執行結果:

empty()檢測是否為空,返回true則為空,返回false則非空,時間複雜度o(1)。

程式**:

#include#includeusing namespace std;

int main()

printf("%d\n",q.empty());//壓入元素,為非看(false);輸出 0

return 0;

}

執行結果:

size()返回queue內元素的個數,時間複雜度為o(1)。

程式**:

#include#includeusing namespace std;

int main()

printf("%d\n",q.size());// 輸出佇列元素個數

return 0;

}

執行結果:

當需要實現廣度優先搜尋時,可以不用自己手動實現乙個佇列,而是用 queue作為代替,以提高程式的準確性。

另外有一點注意的是,使用front()、back()pop()函式前,必須用empty()判斷佇列是否為空,否則可能因為隊空而出現錯誤。

stl的容器中還有兩種容器跟佇列有關,分別是雙端佇列(deque)優先佇列(priority_queue),前者是首尾皆可插入和刪除的佇列,後者是使用堆實現的預設將當前佇列最大元素置於隊首的容器

queue的常見用法

queue是一種先入先出的容器 include include using namespace std queueq stl只能通過front 訪問隊首元素,或者使用back 訪問隊尾元素 queueq for int i 0 i 5 i cout 獲取容器隊首和隊尾元素 queueq for in...

C STL之queue常見用法

queue 模板類的定義在標頭檔案中。queue 佇列,先進先出,先入隊的先出隊。宣告,queue 變數型別 變數名。入隊,q.push x 將x接到佇列的末端。出隊,q.pop 彈出佇列的第乙個元素,不會返回被彈出元素的值。訪問隊首元素,q.front 即最早被壓入佇列的元素。訪問隊尾元素,q.b...

C 佇列queue用法詳解

二 queue常用函式 queue是一種容器轉換器模板,呼叫 include queue 即可使用佇列類。queue 資料型別,容器型別 初始化時必須要有資料型別,容器可省略,省略時則預設為deque 型別 1 queue int q1 queue double q2 queue char q3 預...