除了順序容器外,標準庫還定義了三個順序容器介面卡:stack
、queue
、priority_queue
。
介面卡是標準庫中的乙個通用概念,容器、迭代器和函式都有介面卡。本質上,乙個介面卡是一種機制,能使某種事物的行為看起來像另外一種事物。乙個容器介面卡接受一種已有的容器型別,使其行為看起來像一種不同的型別。
每個介面卡都定義兩個建構函式:
預設情況下,stack
和queue
是基於deque
實現的,priority_queue
是在vector
之上實現的。
可以在建立乙個介面卡時將乙個命名的順序容器作為第二個引數來過載預設容器型別。
//在vector上實現的空棧
stack> str_stk;
//str_stk2在vector上實現,初始化時儲存svec的拷貝
stack> str_stk2(svec);
對於乙個給定的介面卡,可以使用哪些容器是有限制的。
每個容器介面卡都基於底層容器型別的操作定義自己的特殊操作,使用時只可以使用介面卡操作,而不能使用底層容器型別的操作。
stack
型別定義在stack
標頭檔案中。
queue
和priority_queue
介面卡定義在queue
標頭檔案中。
priority_queue
允許在佇列中的元素創立優先順序。新加入的元素會安排在所有優先順序比它低的已有元素之前。預設情況下,標準庫在元素型別上使用<
運算子來確定相對優先順序。
容器介面卡(棧容器介面卡 佇列容器介面卡)
我們已有的容器 比如vector list 這個容器支援的操作很多,比如插入,刪除,迭代器訪問等等。而我們希望這個容器表現出來的是棧的樣子 先進後出,入棧出棧等等,此時,我們沒有必要重新動手寫乙個新的資料結構,而是把原來的容器重新封裝一下,改變它的介面,就能把它當做棧使用了。c 定義了三種容器介面卡...
容器介面卡
容器介面卡通常是讓一種已存在的容器型別採用另一種不同的抽象型別的工作方式實現,一般情況下,它的初始化需要傳遞乙個容器作為引數,而它所有的操作也是在這個容器上實現的。標準庫提供了三種順序容器介面卡 stack queue priority queue,使用它們時需要包含 include 和 inclu...
容器介面卡
容器介面卡 stl 中包含三種介面卡 棧stack 佇列queue 和優先順序priority queue 介面卡是容器的介面,它本身不能直接儲存元素,它儲存元素的機制是呼叫另一種順序容器去實現,即可以把介面卡看作 它儲存乙個容器,這個容器再儲存所有元素 stl 中提供的三種介面卡可以由某一種順序容...