容器介面卡
stl 中包含三種介面卡:棧stack 、佇列queue 和優先順序priority_queue 。
介面卡是容器的介面,它本身不能直接儲存元素,它儲存元素的機制是呼叫另一種順序容器去實現,即可以把介面卡看作「它儲存乙個容器,這個容器再儲存所有元素」。
stl 中提供的三種介面卡可以由某一種順序容器去實現。預設下stack 和queue 基於deque 容器實現,priority_queue 則基於vector 容器實現。當然在建立乙個介面卡時也可以指定具體的實現容器,建立介面卡時在第二個引數上指定具體的順序容器可以覆蓋介面卡的預設實現。
由於介面卡的特點,乙個介面卡不是可以由任乙個順序容器都可以實現的。
棧stack 的特點是後進先出,所以它關聯的基本容器可以是任意一種順序容器,因為這些容器型別結構都可以提供棧的操作有求,它們都提供了push_back 、pop_back 和back 操作;
佇列queue 的特點是先進先出,介面卡要求其關聯的基礎容器必須提供pop_front 操作,因此其不能建立在vector容器上;
優先順序佇列priority_queue 介面卡要求提供隨機訪問功能,因此不能建立在list 容器上。 來自:blog.csdn.net/acosoft
容器介面卡(棧容器介面卡 佇列容器介面卡)
我們已有的容器 比如vector list 這個容器支援的操作很多,比如插入,刪除,迭代器訪問等等。而我們希望這個容器表現出來的是棧的樣子 先進後出,入棧出棧等等,此時,我們沒有必要重新動手寫乙個新的資料結構,而是把原來的容器重新封裝一下,改變它的介面,就能把它當做棧使用了。c 定義了三種容器介面卡...
容器介面卡
容器介面卡通常是讓一種已存在的容器型別採用另一種不同的抽象型別的工作方式實現,一般情況下,它的初始化需要傳遞乙個容器作為引數,而它所有的操作也是在這個容器上實現的。標準庫提供了三種順序容器介面卡 stack queue priority queue,使用它們時需要包含 include 和 inclu...
容器介面卡
在看書之前一直認為棧和佇列都是屬於容器中的一部分呢,今天看完書發現自己又傻了,概念混淆不清啊,這是病,要治!然後就有了這篇筆記。除了順序容器外,標準庫還定義了三個順序介面卡 期盼好久的stack queue和priority queue。看完這個就覺得,哇,c 大牛們真是便利了後代無數人啊,真有一種...