函式
功能stack《資料型別,容器型別》 識別符號
後者為底層實現的容器型別,預設為deque
e.g:stack> s 構造乙個存放int型別的空棧
函式
功能s.push(a)
將元素a加入棧區,沒有返回值
s.emplace(a)
將元素a加入棧區,a可以為類型別,傳入建構函式的引數,將物件加入棧區
函式功能
s.pop()
將棧頂元素刪除,沒有返回值
函式功能
s.size()
返回棧區元素的數量
s.empty()
若堆疊為空則返回真
函式功能
s.top()
返回棧頂元素
#include
#include
#include
using
namespace std;
class
test
void
show()
};intmain()
cout << endl;
int a[5]
=;int b[5]
=;for(
int i =
0; i <
5; i++
) cout <<
"堆疊元素數量:"
<< s.
size()
<< endl;
//判斷元素數量
}
參考:
函式功能
queue《資料型別,容器型別》 識別符號
後者為底層實現的容器型別,預設為deque
e.g:queue> s 構造乙個存放int型別的佇列
函式
功能q.push(a)
隊尾加入元素a
q.emplace(a)
隊尾加入元素a,可傳入類型別,與stack類似;
函式功能
q.pop()
刪除隊首第乙個元素
函式功能
q.size()
返回佇列元素個數
q.empty()
判斷佇列是否為空
函式功能
q.front()
返回第乙個元素(從隊首開始)
q.back()
返回最後乙個元素
參考:函式功能
priority_queue識別符號
底層容器型別預設為vector,pr為比較的方式,預設降序
如果自定義型別需過載《運算子或重寫函式
函式
功能pq.push(a)
往隊尾加入元素a,會經過排序
pq.emplace(a)
加入元素a,可傳入類型別,與stack類似
函式功能
pq.pop()
刪除隊首第乙個元素
函式功能
pq.size()
返回佇列元素的個數
pq.empty()
判斷佇列是否為空
函式功能
pq.top()
返回隊首第乙個元素
#include
#include
using
namespace std;
class
test
friend
bool
operator
>
(const test& t1,
const test& t2)
;void
show()
const
//一定要常函式,pq.top()為乙個常函式,乙個常函式裡面不可以呼叫非常函式};
bool
operator
>
(const test& t1,
const test& t2)
intmain()
;int b[5]
=;for(
int i =
0; i <
5; i++
) pq.
emplace
(a[i]
, b[i]);
//加入元素
cout <<
"現有元素的數量"
參考:
容器介面卡(棧容器介面卡 佇列容器介面卡)
我們已有的容器 比如vector list 這個容器支援的操作很多,比如插入,刪除,迭代器訪問等等。而我們希望這個容器表現出來的是棧的樣子 先進後出,入棧出棧等等,此時,我們沒有必要重新動手寫乙個新的資料結構,而是把原來的容器重新封裝一下,改變它的介面,就能把它當做棧使用了。c 定義了三種容器介面卡...
C 容器介面卡
1 什麼是介面卡 2 容器介面卡 3 為什麼將stack queue和priority queue稱作為容器介面卡 雖然stack queue priority queue中也可以存放元素,但在stl中並沒有將其劃分在容器的行列,而是將其稱為容器介面卡,這是因為每個容器在底層都有自己的實現方式,而s...
C 容器介面卡
除了順序容器外,標準庫還定義了三個順序容器介面卡 stack,queue和priority queue。介面卡是一種機制,能夠使某種事物行為看起來像另外一種事物。乙個容器介面卡接受一種已有的容器型別,使其行為看起來像一種不同的型別。所有容器介面卡都支援的操作和型別 操作和型別 說明size type...