C 棧和佇列

2021-07-23 21:57:06 字數 1344 閱讀 3712

c++提供了三種順序容器介面卡:queue, prioriety_queue和stack。介面卡(adaptor)是標準庫庫中通用的概念,包括容器介面卡、迭代介面卡和函式介面卡。本質上,介面卡是使一事物的行為類似於另一事物的行為的一種機制。容器介面卡讓一種已存在的容器型別採用另一種不同的抽象型別的工作方式實現。

1、介面卡通用的操作和型別

size_type           一種型別,足以儲存此介面卡型別最大物件的長度

value_type 元素型別

container_type 基礎容器的型別,介面卡在此容器型別上實現

a a; 建立乙個新的空介面卡,命名為a

a a(c); 建立乙個名為a的新介面卡,初始化為容器c的副本

關係操作符 所有介面卡都支援全部關係操作符: ==,!=, <, <=, >, >=

#include 

#include

定義

deque

deq;

stack

stk(deq);

2、棧

棧介面卡支援的所有操作

s.empty()           如果棧為空,則返回true,否則返回false

s.size() 返回棧中元素的個數

s.pop() 刪除棧頂元素,但不返回其值

s.top() 返回棧頂元素的值,但不刪除該元素

s.push(item) 在棧頂壓入新元素

3、佇列和優先順序佇列

佇列和優先順序佇列支援的操作

q.empty()           如果隊列為空,則返回true, 否則返回false

q.size() 返回佇列中元素的個數

q.pop() 刪除隊首元素,但不返回其值

q.front() 返回隊首元素的值,但不刪除該元素

該操作只適用於佇列

q.back() 返回隊尾元素的值,但不刪除該元素

該操作只適用於佇列

q.top() 返回具有最高優先順序的元素值,但不刪除該元素

該操作只適用於優先順序佇列

q.push(item) 對於queue,在隊尾壓入乙個新元素

對於priority_queue,在基於優先順序的適當位置插入新元素

c 棧和佇列

c 棧 include using std stack s.empty 如果棧為空返回1,否則返回0 s.size 返回棧中元素的個數 s.pop 刪除棧頂元素但不返回其值 s.top 返回棧頂的元素,但不刪除該元素 s.push 在棧頂壓入新元素 測試例項 include include usin...

c 棧和佇列

使用標準庫的棧和佇列時,先包含相關的標頭檔案 include include 定義棧如下 stackstk 定義佇列如下 queueq 棧提供了如下的操作 cpp view plain copy s.empty 如果棧為空返回 true,否則返回 false s.size 返回棧中元素的個數 s.p...

C 棧和佇列

使用標準庫的棧和佇列時,先包含相關的標頭檔案 include include 定義棧如下 stackstk 定義佇列如下 queueq 棧提供了如下的操作 cpp view plain copy s.empty 如果棧為空返回 true 否則返回 false s.size 返回棧中元素的個數 s.p...