• c++ queue用法 入门必看 超详细


    1、queue的作用

    说到queue,大家一定会想到stack,同样是简单易用的数据结构之一。queue就是队列的意思,像大家日常排队一样,先排的人先用。stack则是相反的,后来的先用。这就有了queue先进先出,stack后进先出的说法。

    queue是一个很简单的数据结构,但是却非常实用,同时也是必不可少的,其它的数据结构都无法替代队列。

    queue常用于模仿队列,在算法中比较常用的有单调队列算法

    相信看完本文就能上手使用了

    2、queue的定义

    queue<储存的类型> 容器名
    如:
    储存int型数据的队列 queue q;
    储存double型数据的队列 queue q;
    储存string型数据的队列 queue q;
    储存结构体或者类的队列 queue<结构体名> q;

    3、queue的成员函数

    back() //返回最后一个元素 
    empty() //如果队列空则返回真 
    front() //返回第一个元素 
    pop() //删除第一个元素 
    push() //在末尾加入一个元素 
    size() //返回队列中元素的个数 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    示例代码:

    #include//c++标准头文件,可以使用cout,cin等标准库函数 
    #include//使用queue时需要的头文件 
    using namespace std;//命名空间,防止重名给程序带来各种隐患,使用cin,cout,stack,map,set,vector,queue时都要使用
    int main(){
    	queue<int> q;//定义一个int类型的队列
    	
    	q.push(1);//在队尾添加元素1 
    	q.push(2);//在队尾添加元素2
    	q.push(3);//在队尾添加元素3
    	cout<<"插入元素1、2、3后,目前队列中的元素:1 2 3"<<endl;
    	cout<<"q.size()="<<q.size()<<endl;//q.size()查看目前队列中的元素个数 
    	cout<<"q.empty()="<<q.empty()<<endl;//查看队列是否为空,1即为空,0即非空 
    	cout<<"q.front()="<<q.front()<<endl; //查看队首元素 
    	
    	cout<<endl; 
    	q.pop();//队首元素出队
    	cout<<"q.pop()后,目前队列中的元素:2 3 "<<endl; 
    	cout<<"q.size()="<<q.size()<<endl;//q.size()查看目前队列中的元素个数 
    	cout<<"q.empty()="<<q.empty()<<endl;//查看队列是否为空,1即为空,0即非空 
    	cout<<"q.front()="<<q.front()<<endl; //查看队首元素 
    	 
    	
    	cout<<endl; 
    	q.pop();//队首元素出队
    	cout<<"q.pop()后,目前队列中的元素:3" <<endl; 
    	cout<<"q.size()="<<q.size()<<endl;//q.size()查看目前队列中的元素个数 
    	cout<<"q.empty()="<<q.empty()<<endl;//查看队列是否为空,1即为空,0即非空 
    	cout<<"q.front()="<<q.front()<<endl; //查看队首元素 
    	
    	
    	cout<<endl; 
    	q.pop();//队首元素出队
    	cout<<"q.pop()后,目前队列是空的"<<endl; 
    	cout<<"q.size()="<<q.size()<<endl;//q.size()查看目前队列中的元素个数 
    	cout<<"q.empty()="<<q.empty()<<endl;//查看队列是否为空,1即为空,0即非空 
    	cout<<"队列是空的时候将不能用q.front()查看队首元素" <<endl; 
    	 
    	 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    运行结果:

    插入元素123后,目前队列中的元素:1 2 3
    q.size()=3
    q.empty()=0
    q.front()=1
    
    q.pop()后,目前队列中的元素:2 3
    q.size()=2
    q.empty()=0
    q.front()=2
    
    q.pop()后,目前队列中的元素:3
    q.size()=1
    q.empty()=0
    q.front()=3
    
    q.pop()后,目前队列是空的
    q.size()=0
    q.empty()=1
    队列是空的时候将不能用q.front()查看队首元素
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    queue和stack都是不能随机访问的,即通过下标访问元素,也不能遍历

    至此队列的基本用法就学完咯

    是不是很简单呢?

    刚接触肯定会觉得难,多些做题多些用,熟悉了就容易了,兄弟萌,加油!!!

    文章尚有不足,欢迎大牛们指正

    感谢观看,点个赞吧

  • 相关阅读:
    工作手机定制服务
    jxTMS设计思想之流程开发(一)
    【马士兵】Python基础--04
    OpenCV图像处理——停车场车位识别
    【图像处理笔记】图像分割之聚类和超像素
    关于NAND FLASH解扣的认识
    攻防世界 看雪看雪看雪
    离职原因千万不要这样说!
    上周热点回顾(6.17-6.23)
    uniCloud云开发入门以及对传统开发方式的思考
  • 原文地址:https://blog.csdn.net/weixin_52115456/article/details/127598816