容器介面卡通常是讓一種已存在的容器型別採用另一種不同的抽象型別的工作方式實現,一般情況下,它的初始化需要傳遞乙個容器作為引數,而它所有的操作也是在這個容器上實現的。標準庫提供了三種順序容器介面卡:stack、
queue、priority_queue,使用它們時需要包含#include
和#include
標頭檔案,另外容器介面卡支援關係運算。
容器介面卡的初始化:
預設建構函式,用於建立空物件,採用預設的順序容器實現該介面卡,a a,stackintstack
帶乙個引數的建構函式,將引數容器的副本作為實現該介面卡的基礎值,a a(c),dequedeq;
stackstk(deq)
容器介面卡預設採用哪種順序容器實現:
stack、queue: 採用deque實現,priority_queue:採用vector實現。
容器介面卡可以有哪些順序容器實現:
stack:所關聯的的基礎容器可以是任意一種順序容器,vector、list、deque
queue:必須提供push_front操作,只能建立在list和deque容器之上
priority_queue:要求必須提供隨機訪問功能,因此只能建立在vector和deque容器之上
介面卡通用的型別:size_type、value_type、container_type(基礎容器型別)
棧介面卡:按照後進先出原則操作的一種資料結構,它支援的操作有,empty()、size()、pop()、push(item)、top(),五種操作
佇列介面卡:按照先進先出原則操作的一種資料結構,它支援的操作有,empty()、size()、pop()、push(item)、front()、back(),六種操作
優先順序佇列:允許使用者為佇列中儲存的元素設定優先順序,該佇列不是將新增元素放在隊尾而是將它放在比他優先順序低的元素的前面,預設使用 < 操作符來確定它們之間的優先順序關係。它支援的操作有,empty()、size()、pop()、push()、top(),五種操作
容器介面卡(棧容器介面卡 佇列容器介面卡)
我們已有的容器 比如vector list 這個容器支援的操作很多,比如插入,刪除,迭代器訪問等等。而我們希望這個容器表現出來的是棧的樣子 先進後出,入棧出棧等等,此時,我們沒有必要重新動手寫乙個新的資料結構,而是把原來的容器重新封裝一下,改變它的介面,就能把它當做棧使用了。c 定義了三種容器介面卡...
容器介面卡
容器介面卡 stl 中包含三種介面卡 棧stack 佇列queue 和優先順序priority queue 介面卡是容器的介面,它本身不能直接儲存元素,它儲存元素的機制是呼叫另一種順序容器去實現,即可以把介面卡看作 它儲存乙個容器,這個容器再儲存所有元素 stl 中提供的三種介面卡可以由某一種順序容...
容器介面卡
在看書之前一直認為棧和佇列都是屬於容器中的一部分呢,今天看完書發現自己又傻了,概念混淆不清啊,這是病,要治!然後就有了這篇筆記。除了順序容器外,標準庫還定義了三個順序介面卡 期盼好久的stack queue和priority queue。看完這個就覺得,哇,c 大牛們真是便利了後代無數人啊,真有一種...