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();