容器介面卡與順序容器的區別

2021-07-27 13:32:31 字數 592 閱讀 3253

1.如何理解容器介面卡,其與順序容器有什麼區別?

adapter原意是插座、介面卡、接合器的意思。現在我需要乙個棧結構,我們可以用deque來模擬,只在一端進行元素插入和彈出,另一端不動。但deuqe畢竟不能直接作為乙個stack,它並不能直接地嚴格地滿足你的要求,因為你不能防止別人在另一端亂動你的東西。你需要對它進行一些包裝,作一些限制,使之只能在一端進行插入和刪除。也就是說你必須提供乙個「插座」,這個「插座」一端插在deque上,另一端插在你的程式中,你就可以使用棧結構了。而stack就是這樣的「插座」,它連線了deque和你的程式。表面上看你使用的是stack,實際上你是通過stack這個「插座」來使用deque(因為stack完全是用deque來實現的,它並沒有任何其他的東西,它只是在deque上面作了一層包裝,相當於乙個「插座」的功能)。因此,stack、queue、priority_queue這樣的類一般稱為容器介面卡,它們只是基本容器型別(vector,dequeue,list)的適配。

實際上,這也介面卡模式的基本思想:將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。也就是說,在乙個類的介面上提供乙個「插座」類,使它變成你希望使用的介面。

容器介面卡(棧容器介面卡 佇列容器介面卡)

我們已有的容器 比如vector list 這個容器支援的操作很多,比如插入,刪除,迭代器訪問等等。而我們希望這個容器表現出來的是棧的樣子 先進後出,入棧出棧等等,此時,我們沒有必要重新動手寫乙個新的資料結構,而是把原來的容器重新封裝一下,改變它的介面,就能把它當做棧使用了。c 定義了三種容器介面卡...

容器介面卡

容器介面卡通常是讓一種已存在的容器型別採用另一種不同的抽象型別的工作方式實現,一般情況下,它的初始化需要傳遞乙個容器作為引數,而它所有的操作也是在這個容器上實現的。標準庫提供了三種順序容器介面卡 stack queue priority queue,使用它們時需要包含 include 和 inclu...

容器介面卡

容器介面卡 stl 中包含三種介面卡 棧stack 佇列queue 和優先順序priority queue 介面卡是容器的介面,它本身不能直接儲存元素,它儲存元素的機制是呼叫另一種順序容器去實現,即可以把介面卡看作 它儲存乙個容器,這個容器再儲存所有元素 stl 中提供的三種介面卡可以由某一種順序容...