C++中queue的用法(超详细,入门必看)

2024-06-04 1524阅读

博主简介:Hello大家好呀,我是陈童学,一个与你一样正在慢慢前行的人。

博主主页:@陈童学哦

所属专栏:C++STL

C++中queue的用法(超详细,入门必看) 第1张

前言:Hello各位小伙伴们好!欢迎来到本专栏C++STL的学习,本专栏旨在帮助大家了解并熟悉使用C++中的STL,C++中的STL(标准模板库)是相当好用的,🍉🍉🍉所以大家赶紧订阅一起学起来叭!那么话不多说接下来就进入本文C++中queue的学习。

📢📢📢站点

  • ⭐一、queue的简介
  • ⭐二、queue的定义及初始化
  • ⭐三、queue中常用的成员函数
  • ⭐四、queue的遍历方法
  • ⭐五、queue的真题巩固
  • ⭐六、写在最后

    ⭐一、queue的简介

    queue的中文译为队列,队列是一种数据结构。C语言中队列的定义及初始化以及一些相关操作实现起来较为繁琐,而C++的queue让这些都变得简便易实现。因为C++中有着许多关于queue的方法函数。

    队列(queue)最大的特点就是先进先出。就是说先放入queue容器的元素一定是要先出队列之后,比它后进入队列的元素才能够出队列。

    举个生活中的例子吧。

    假如你现在是一名学生,现在刚下课,你准备去食堂吃饭,但是刚下课的学校食堂吃饭的人一般都是比较多的,所以大家需要排队打饭,而下课跑得快的人排在前面就比排在后面的人先打到饭然后就出队找位置坐下吃饭了,由于你排在人家后面,所以你是不是得先等你前面的那坨人打完之后才能轮到你呀。

    所以我一般下完课都是先回宿舍的,因为跑不赢他们,根本跑不赢😂😂。

    而我们这里的队列(queue)和日常生活中的排队是类似的道理。

    使用queue时需要包含头文件:

    #include
    

    ⭐二、queue的定义及初始化

    • 定义

      queue容器名

      例:

      //queue的定义 
      queueq1; //定义一个储存数据类型为int的queue容器q1 
      queueq2; //定义一个储存数据类型为double的queue容器q2
      queueq3; //定义一个储存数据类型为string的queue容器q3
      queueq4; //定义一个储存数据类型为结构体类型的queue容器q4
      

      ⭐三、queue中常用的成员函数

      关于queue的常用函数:

      back() //返回队列中最后一个元素 
      empty() //判断队列是否为空 
      front() //返回队列中的第一个元素 
      pop() //删除队列的第一个元素 
      push() //在队列末尾加入一个元素 
      size() //返回队列中元素的个数 
      

      示例代码:

      #include
      #include
      using namespace std;
      int main()
      {
      	queue q; //定义一个数据类型为int的queue 
      	q.push(1); //向队列中加入元素1 
      	q.push(2); //向队列中加入元素2
      	q.push(3); //向队列中加入元素3 
      	q.push(4); //向队列中加入元素4 
      	cout
      		cout
      		cout
      	queue
      		cout
      	int n,m,k;
      	cinnmk;
      	for(int i=1;i
      		int a;
      		cina;
      		p.push(a);
      	}
      	while(p.size()||box.size())
      	{
      		t.push(101);
      		while(t.size()
      			if(box.size()&&box.top()
      				t.push(box.top());
      				box.pop();
      			}
      			else if(p.size()&&p.front()
      				t.push(p.front());
      				p.pop();
      			}
      			else if(p.size()&&box.size()
      				box.push(p.front());
      				p.pop();
      			}
      			else 
      				break;
      		}
      		t.pop();
      		cout
      			cout

    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]