当前位置:   article > 正文

C++中清空队列(queue)的方法_队列清空函数

队列清空函数

        使用过C++ STL的人应该知道,STL中自带的queue队列数据结构,本身不提供清空队列元素的基本方法;在这里,给大家说说如何自己编写代码清空queue队列的元素。

方法一:遍历队列,挨个出队

代码如下:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main() {
  4. queue<int> q;
  5. for(int i=1;i<=3;i++) {
  6. q.push(i);
  7. }
  8. cout << "当前队列的长度为:" << q.size() << endl;
  9. //清空队列
  10. while(!q.empty()) { //只要队列不为空
  11. q.pop(); //一直出队
  12. }
  13. cout << "当前队列的长度为:" << q.size() << endl;
  14. return 0;
  15. }

方法二:使用swap函数交换实现

可以定义一个空队列nq,然后用这个空队列与原来已经有元素的队列q进行交换,那么原来的队列q就是空队列,注意:swap交换的是内容本身。代码如下:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. void clear(queue<int> &t) {
  4. queue<int> empty;
  5. swap(empty,t);
  6. }
  7. int main() {
  8. queue<int> q;
  9. for(int i=1;i<=3;i++) {
  10. q.push(i);
  11. }
  12. cout << "当前队列的长度为:" << q.size() << endl;
  13. //清空队列
  14. clear(q);
  15. cout << "当前队列的长度为:" << q.size() << endl;
  16. return 0;
  17. }

此处使用C++中的引用数据类型,这里用视频讲解一下,在C++中什么是引用数据类型?

引用数据类型说明

为什么写这篇文章呢?

因为在做一道BFS题目的时候用到了队列清空这一知识点,想着这应该也是很多人的盲区,在信息学奥赛的代码编程中,应该要多注意细节,这样才能在现场竞赛中做到镇定自若。

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号