/*使用標準庫的棧*/
#include //標頭檔案
stacks; //定義乙個 int 型的棧
s.empty() //如果棧為空返回true,否則返回false
s.size() //返回棧中元素的個數
s.pop() //刪除棧頂元素但不返回其值
s.top() //返回棧頂的元素,但不刪除該元素
s.push() //在棧頂壓入新元素
/*使用標準庫的佇列*/
#include //標頭檔案
queueq; //定義乙個 int 型的佇列
q.empty() //如果隊列為空返回true,否則返回false
q.size() //返回佇列中元素的個數
q.pop() //刪除佇列首元素但不返回其值
q.front() //返回隊首元素的值,但不刪除該元素
q.push() //在隊尾壓入新元素
q.back() //返回佇列尾元素的值,但不刪除該元素
/*優先佇列
在標頭檔案中,還定義了乙個非常有用的模版類priority_queue(優先佇列),
優先佇列與佇列的差別在於優先佇列不是按照入隊的順序出隊,而是按照佇列中元素的優先權順序出隊
(預設為大者優先,也可以通過指定運算元來指定自己的優先順序)預設是乙個大根堆。
priority_queue模版類有三個模版引數,元素型別,容器型別,比較運算元。
其中後兩個都可以省略,預設容器為vector,預設運算元為less,即小的往前排,大的往後排(出隊時序列尾的元素出隊)。*/
/*如果是基本資料型別,或已定義了比較運算子的類,可以直接用stl的less運算元和greater運算元——預設為使用less運算元,
即小的往前排,大的先出隊。如果要定義自己的比較運算元,方法有多種,這裡介紹其中的一種:過載比較運算子。
優先佇列試圖將兩個元素x和y代入比較運算子(對less運算元,呼叫xy),
若結果為真,則x排在y前面,y將先於x出隊,反之,則將y排在x前面,x將先出隊。
*/priority_queueq;
priority_queue>q2;
priority_queue,greater>q3;
/*優先順序佇列支援的操作*/
q.empty() //如果隊列為空,則返回true,否則返回false
q.size() //返回佇列中元素的個數
q.pop() //刪除隊首元素,但不返回其值
q.top() //返回具有最高優先順序的元素值,但不刪除該元素
q.push(item) //在基於優先順序的適當位置插入新元素
/*deque(雙向佇列)*/
#include; //標頭檔案
dequec //建立乙個空的deque
dequec1(c2) //複製乙個deque。
dequec(n) //建立乙個deque,含有n個資料,資料均已預設構造產生。
dequec(n, elem) //建立乙個含有n個elem拷貝的deque。
dequec(beg,end) //建立乙個以[beg;end)區間的deque。
c.begin() //返回指向第乙個元素的迭代器
c.end() //返回指向最後乙個元素下乙個位置的迭代器
c.rbegin() //返回指向反向佇列的第乙個元素的迭代器(即原佇列的最後乙個元素)
c.rend() //返回指向反向佇列的最後乙個元素的下乙個位置(即原佇列的第乙個元素的前乙個位置)
c.at(pos) //返回索引為pos的位置的元素,會執行邊界檢查,如果越界丟擲out_of_range異常
c.operator //下標運算子過載
c.front() //返回c容器的第乙個元素
c.back() //返回c容器的最後乙個元素
c.size() //返回c容器中實際擁有的元素個數
c.max_size() //返回c容器可能存放元素的最大數量
c.clear() //清除c容器中擁有的所有元素
c.empty() //返回真如果雙向隊列為空
c.insert(pos,num) //在pos位置插入元素num
c.insert(pos,n,num) //在pos位置插入n個元素num
c.insert(pos,beg,end) //在pos位置插入區間為[beg,end)的元素
c.erase(pos) //刪除pos位置的元素c.erase(beg,end)刪除區間為[beg,end)的元素
c.erase(beg,end) //刪除區間為[beg,end)之間的元素
c.push_back(num) //在末尾位置插入元素
c.pop_back() //刪除末尾位置的元素
c.push_front(num) //在開頭位置插入元素
c.pop_front() //刪除開頭位置的元素
c.resize(num) //從新定義容器的大小
c.assign(n,num) //將n個num拷貝複製到容器c
c.assign(beg,end) //將[beg,end)區間的資料拷貝複製到容器c
棧和佇列總結
棧佇列 特點後進先出 先進先出 定義stackstack new stack queuequeue new linkedlist 入s.push q.offer 出s.pop 同時返回棧頂元素 q.poll 同時返回隊頭元素 頂s.peek q.peek 佇列頭部元素 注意 在佇列中 add 和re...
棧和佇列總結
棧繼承自vector,stack只有乙個空參構造方法,因此想往其中新增元素只能使用方法push 常用方法如下 public e push e item 入棧 public e pop 出棧 public e peek 檢視棧頂元素 public boolean empty 是否為空 注意在使用棧時,...
棧和佇列總結
佇列 只允許在一端進行插入資料操作,在另一端進行刪除資料操作的特殊線性表,佇列具有先進先出fifo first in first out 入佇列 進行插入操作的一端稱為隊尾 tail rear 出佇列 進行刪除操作的一端稱為隊頭。棧 一種特殊的線性表,其只允許在固定的一端進行插入和刪除元素操作。進行...