在計算機科學(xué)領(lǐng)域,我們致力于各種程序。他們每個人都有自己的域和實用程序。根據(jù)程序創(chuàng)建的目的和環(huán)境,我們有大量數(shù)據(jù)結(jié)構(gòu)可供選擇。其中之一就是“隊列”。在討論這種數(shù)據(jù)類型之前,讓我們看一下它的語法。
template<class T, class Container = deque<T> > class queue;
此數(shù)據(jù)結(jié)構(gòu)適用于FIFO技術(shù),其中FIFO表示先進(jìn)先出。首先插入的元素將首先被提取,依此類推。有一個稱為“前”的元素,它是位于最前位置或位于第一個位置的元素,也有一個名為“后”的元素,它是位于最后位置的元素。在普通隊列中,元素的插入在尾部,而刪除則從前面開始。
應(yīng)用程序區(qū)域中的隊列隱含為容器適配器。
容器應(yīng)支持以下操作列表:
empty
size
push_back
pop_front
front
back
T:參數(shù)指定容器適配器將保留的元素的類型。
Container:參數(shù)指定容器的內(nèi)部對象,其中保留隊列的元素。
下面給出了隊列成員類型的列表,并對其進(jìn)行了簡短描述。
成員類型 | 描述 |
---|---|
value_type | 指定了元素類型。 |
container_type | 指定了底層容器類型。 |
size_type | 它指定元素的大小范圍。 |
reference | 它是容器的引用類型。 |
const_reference | 它是常量容器的引用類型。 |
借助函數(shù),可以在編程領(lǐng)域中使用對象或變量。隊列提供了大量可以在程序中使用或嵌入的函數(shù)。相同的列表如下:
函數(shù) | 描述 |
---|---|
(constructor) | 該函數(shù)用于構(gòu)造隊列容器。 |
empty | 該函數(shù)用于測試隊列是否為空。如果隊列為空,則該函數(shù)返回true,否則返回false。 |
size | 該函數(shù)返回隊列中元素的個數(shù)。 |
front | 該函數(shù)返回第一個元素。元素起著非常重要的作用,因為所有的刪除操作都是在front元素上執(zhí)行的。 |
back | 該函數(shù)返回最后一個元素。該元素起著非常重要的作用,因為所有插入操作都在后面元素上執(zhí)行。 |
push | 該函數(shù)用于在末尾插入一個新元素。 |
pop | 該函數(shù)用于刪除第一個元素。 |
emplace | 該函數(shù)用于在當(dāng)前后元素上方的隊列中插入新元素。 |
swap | 該函數(shù)用于交換參考中兩個容器的內(nèi)容。 |
relational operators | 非成員函數(shù)指定隊列所需的關(guān)系運算符。 |
uses allocator<queue> | 顧名思義,非成員函數(shù)將分配器用于隊列。 |
#include <iostream> #include <queue> using namespace std; void showsg(queue <int> sg) { queue <int> ss = sg; while (!ss.empty()) { cout << '\t' << ss.front(); ss.pop(); } cout << '\n'; } int main() { queue <int> fquiz; fquiz.push(10); fquiz.push(20); fquiz.push(30); cout << "隊列fquiz是 : "; showsg(fquiz); cout << "\nfquiz.size() : " << fquiz.size(); cout << "\nfquiz.front() : " << fquiz.front(); cout << "\nfquiz.back() : " << fquiz.back(); cout << "\nfquiz.pop() : "; fquiz.pop(); showsg(fquiz); return 0; }
輸出:
隊列fquiz是 : 10 20 30 fquiz.size() : 3 fquiz.front() : 10 fquiz.back() : 30 fquiz.pop() : 20 30