在計算機科學(xué)領(lǐng)域,我們致力于各種程序。他們每個人都有自己的域和實用程序。根據(jù)程序創(chuàng)建的目的和環(huán)境,我們有大量數(shù)據(jù)結(jié)構(gòu)可供選擇。其中之一是“堆?!薄T谟懻撨@種數(shù)據(jù)類型之前,讓我們看一下它的語法。
template<class T, class Container = deque<T> > class stack;
這種數(shù)據(jù)結(jié)構(gòu)使用LIFO技術(shù),其中LIFO表示后進先出。首先插入的元素將在末尾提取,以此類推。有一個名為“top”的元素,它是位于最上面位置的元素。所有插入和刪除操作都是在堆棧的頂部元素本身進行的。
應(yīng)用區(qū)域中的堆棧暗示為容器適配器。
容器應(yīng)支持以下操作列表:
empty
size
back
push_back
pop_back
T:參數(shù)指定容器適配器將保留的元素的類型。
Container:參數(shù)指定容器的內(nèi)部對象,用于容納堆棧的元素。
下面給出了堆棧成員類型的列表,并對其進行了簡短描述。
會員類型 | 描述 |
---|---|
value_type | 指定了元素類型。 |
container_type | 指定了基礎(chǔ)容器類型。 |
size_type | 它指定元素的大小范圍。 |
借助函數(shù),可以在編程領(lǐng)域中使用對象或變量。堆棧提供了大量可以在程序中使用或嵌入的函數(shù)。相同的列表如下:
函數(shù) | 描述 |
---|---|
(constructor) | 該函數(shù)用于構(gòu)造堆棧容器。 |
empty | 該函數(shù)用于測試堆棧是否為空。如果堆棧為空,則該函數(shù)返回true,否則返回false。 |
size | 該函數(shù)返回堆棧容器的大小,該大小是堆棧中存儲的元素數(shù)量的度量。 |
top | 該函數(shù)用于訪問堆棧的頂部元素。該元素起著非常重要的作用,因為所有插入和刪除操作都是在頂部元素上執(zhí)行的。 |
push | 該函數(shù)用于在堆棧頂部插入新元素。 |
pop | 該函數(shù)用于刪除元素,堆棧中的元素從頂部刪除。 |
emplace | 該函數(shù)用于在當前頂部元素上方的堆棧中插入新元素。 |
swap | 該函數(shù)用于交換引用的兩個容器的內(nèi)容。 |
relational operators | 非成員函數(shù)指定堆棧所需的關(guān)系運算符。 |
uses allocator<stack> | 顧名思義,非成員函數(shù)將分配器用于堆棧。 |
#include <iostream> #include <stack> using namespace std; void newstack(stack <int> ss) { stack <int> sg = ss; while (!sg.empty()) { cout << '\t' << sg.top(); sg.pop(); } cout << '\n'; } int main () { stack <int> newst; newst.push(55); newst.push(44); newst.push(33); newst.push(22); newst.push(11); cout << "最新的堆棧是 : "; newstack(newst); cout << "\n newst.size() : " << newst.size(); cout << "\n newst.top() : " << newst.top(); cout << "\n newst.pop() : "; newst.pop(); newstack(newst); return 0; }
輸出:
最新的堆棧是 : 11 22 33 44 55 newst.size() : 5 newst.top() : 11 newst.pop() : 22 33 44 55