就是由基本的容器適配(改造)出來的那些容器,其它沒啥特殊的。
比如stack,因為我們可以把stack理解成只是對vector、deque或list的訪問加一點限制而已(只能從頭部訪問),所以沒有必要把stack做成乙個基本容器,使用其它的基本容器再稍微封裝改造一下就ok了,所以stack在stl中就只是乙個「容器介面卡」,而不是乙個基礎容器。
1.stack
stacks;
stack< int, vector> stk; //覆蓋基礎容器型別,使用vector實現stk
s.empty(); //判斷stack是否為空,為空返回true,否則返回false
s.size(); //返回stack中元素的個數
s.pop(); //刪除棧頂元素,但不返回其值
s.top(); //返回棧頂元素的值,但不刪除此元素
s.push(item); //在棧頂壓入新元素item
2.queue & priority_queue
queueq; //priority_queueq;
q.empty(); //判斷佇列是否為空
q.size(); //返回佇列長度
q.push(item); //對於queue,在隊尾壓入乙個新元素
//對於priority_queue,在基於優先順序的適當位置插入新元素
//queue only:
q.front(); //返回隊首元素的值,但不刪除該元素
q.back(); //返回隊尾元素的值,但不刪除該元素
//priority_queue only:
q.top(); //返回具有最高優先順序的元素值,但不刪除該元素
原文:
容器介面卡(棧容器介面卡 佇列容器介面卡)
我們已有的容器 比如vector list 這個容器支援的操作很多,比如插入,刪除,迭代器訪問等等。而我們希望這個容器表現出來的是棧的樣子 先進後出,入棧出棧等等,此時,我們沒有必要重新動手寫乙個新的資料結構,而是把原來的容器重新封裝一下,改變它的介面,就能把它當做棧使用了。c 定義了三種容器介面卡...
容器介面卡
容器介面卡通常是讓一種已存在的容器型別採用另一種不同的抽象型別的工作方式實現,一般情況下,它的初始化需要傳遞乙個容器作為引數,而它所有的操作也是在這個容器上實現的。標準庫提供了三種順序容器介面卡 stack queue priority queue,使用它們時需要包含 include 和 inclu...
容器介面卡
容器介面卡 stl 中包含三種介面卡 棧stack 佇列queue 和優先順序priority queue 介面卡是容器的介面,它本身不能直接儲存元素,它儲存元素的機制是呼叫另一種順序容器去實現,即可以把介面卡看作 它儲存乙個容器,這個容器再儲存所有元素 stl 中提供的三種介面卡可以由某一種順序容...