C++ STL學習筆記之:隊列(queue)、雙端隊列(deque)與棧(stack)


queue(隊列)

定義一個名為 que 的存儲 int 類型元素的隊列:

queue<int> que;

入隊操作:

que.push(a);    // 其中a是一個int類型的變量

出隊操作:

que.pop();

但是在隊列為空時,進行出隊操作會出錯。所以需要先判斷一下隊列是否為空。

判斷隊列是否為空:

que.empty()

它返回一個 bool 值,如果隊列為空返回 true,否則返回 false。

隊首元素:

que.front();

隊尾元素:

que.back();

隊列中元素個數:

que.size();

清空隊列:
隊列沒有單獨的函數用來清空它,所以我們可以使用如下方法來清空隊列:

while (!que.empty())
    que.pop();

雙端隊列(deque)

區別於一般的隊列,只能從隊尾入隊,從隊首出隊;
雙端隊列是可以同時從隊首入隊和出隊,也可以同時從隊尾入隊和出隊的隊列。

定義一個名為 que 的存放 int 類型的雙端隊列(deque):

deque<int> que;

隊首元素:

que.front()

隊尾元素:

que.back()

判斷雙端隊列是否為空:

que.empty()

獲得雙端隊列的元素個數:

que.size()

從隊首入隊:

que.push_front(a);

從隊尾入隊:

que.push_back(a);

從隊首出隊:

que.pop_front();

從隊尾出隊:

que.pop_back();

清空雙端隊列:

因為雙端隊列沒有 pop() 方法,所以我們可以用 pop_front 或者 pop_back 代替。

while (!que.empty())
    que.pop_front();

while (!que.empty())
    que.pop_back();

當然,雙端隊列還有更方便的清空它自己的方法:

que.clear();

棧(stack)

既然講了隊列、雙端隊列,我們再來學習(復習一下)棧(stack)的使用。

定義一個名為 stk 的存放 int 類型的棧:

stack<int> stk;

獲得棧頂元素:

stk.top()

入棧操作:

stk.push(a);

出棧操作:

stk.pop();

判斷棧是否為空:

stk.empty()

棧中元素個數:

stk.size()

清空棧:

while (!stk.empty()) stk.pop();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM