30,queue容器

30.1queue基本概念

概念:queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口

 队列容器允许从一端新增元素,从另一端移除元素,队列queue符合先进先出

队列中只有对头和队尾才可以被外界使用,因此队列不允许有遍历行为

队列中进数据称为--入队(push)

队列中出数据称为--出队(pop)

判断队列是否为空(empty)

返回队列大小(size)

30.2queue常用接口

功能描述:栈容器常用的对外接口

构造函数:

queue<T>que;                                        //queue采用模板类实现,queue对象的默认构造形式

queue(const queue &que);                     //拷贝构造函数

赋值操作:

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

数据存取:

push(elem);                                              //往对尾添加元素

pop();                                                       //从对头移除第一个元素

back();                                                     //返回最后一个元素

front();                                                     //返回第一个元素

大小操作:

empty();                                                  //判断堆栈是否为空

size();                                                     //返回栈的大小

#include<iostream>
using namespace std;
#include<queue>
class Person
{
public:
	Person(string name, int age)
	{
		this->m_Name = name;
		this->m_Age = age;
	}
	string m_Name;
	int m_Age;
};
void test01()
{
	queue<Person>q;
	Person p1("张三", 10);
	Person p2("李四", 20);
	Person p3("王五", 30);
	Person p4("赵六", 40);
	q.push(p1);
	q.push(p2);
	q.push(p3);
	q.push(p4);
	cout << "队列大小:" << q.size() << endl;
	//输出结果:队列大小:4

	//判断只要队列不为空,查看队头,查看队尾
	while (!q.empty())
	{
		//查看队头
		cout << "队头姓名:" << q.front().m_Name << " 队头年龄:" << q.front().m_Age << endl;
		//查看队尾
		cout << "队尾姓名:" << q.back().m_Name << " 队尾年龄:" << q.back().m_Age << endl;
		q.pop();
	}
	//输出结果:
	//  队头姓名:张三 队头年龄:10
	//	队尾姓名:赵六 队尾年龄:40
	//	队头姓名:李四 队头年龄:20
	//	队尾姓名:赵六 队尾年龄:40
	//	队头姓名:王五 队头年龄:30
	//	队尾姓名:赵六 队尾年龄:40
	//	队头姓名:赵六 队头年龄:40
	//	队尾姓名:赵六 队尾年龄:40
	cout << "队列大小:" << q.size() << endl;
	//输出结果:队列大小:0
}
int main()
{
	test01();
	system("pause");
	return 0;
}

总结:

入队--push

出队--pop

返回队头元素--front

返回队尾元素--back

判断队列是否为空--empty

返回队列大小--size

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值