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