queue及优先队列

本文详细介绍了C++标准库中的queue容器及其构造函数、赋值操作、数据存取、大小判断以及优先队列的使用,包括升序和降序排列的优先队列示例。通过person类实例演示了如何操作队列,以及如何在主函数中进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.功能:queue容器常用的对外接口

2.构造函数:

  • queue<T> que; //queue采用模板类实现,queue对象的默认形式
  • queue(const queue &que); //拷贝构造函数

3.赋值操作:

  • queue &operator = (const queue &que); //重载等号操作符

4.数据存取:

  • push(elem); //在队尾添加元素
  • pop(); //从对头移除第一个元素
  • back(); //返回最后一个元素
  • front(); //返回第一个元素

5.大小操作:

  • empty(); //判断queue是否为空
  • size(); //返回栈的大小

6.优先队列:

       greater<Type>是升序排列,less<Type>是降序排列。

  • priority_queue<int> 是默认的大根堆实现,top()是当前优先队列的最大值。

  • priority_queue<int,vector<int>,less<int>>是最大值的优先队列,top() 是当前优先队列的最大值。

  • priority_queue<int,vector<int>,greater<int>>是最小值的优先队列,top() 是当前优先队列的最小值。

  • #include<iostream>
    #include<queue>
    using namespace std;
    
    class person
    {
    	public:
    		person(string name,int age)
    		{
    			this->myname=name;
    			this->myage=age;
    		}
    		string myname;
    		int myage;
    };
    void test1()
    {
    	//创建队列 
    	queue<person> p;
    	
    	//数据内容 
    	person p1("李信",25);
    	person p2("澜",18);
    	person p3("小乔",15);
    	person p4("后裔",20);
    	person p5("蔡文姬",13);
    	
    	//入队 
    	p.push(p1);
    	p.push(p2);
    	p.push(p3);
    	p.push(p4);
    	p.push(p5);
    	
    	//判空
    	while(!p.empty()) 
    	{
    		cout<<"查看当前队列的首元素姓名:"<<p.front().myname<<" 年龄:"<<p.front().myage<<endl;
    		cout<<"查看当前队列的尾元素姓名:"<<p.back().myname<<" 年龄:"<<p.back().myage<<endl;
    		p.pop(); //查看完之后即移出队列 
    	}
    	
    	cout<<"当前队列大小:"<<p.size()<<endl;
    }
    int main()
    {
    	test1();
    	return 0;
     } 
    

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值