C 容器介面卡標準庫筆記

2021-10-05 23:41:42 字數 2558 閱讀 1138

函式

功能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...