c++ 队列 STL库的基本操作

参考:数据结构图文解析之:队列详解与C++模板实现

队列简介

队列(Queue)特点:

1、队列中的数据元素遵循“先进先出”(First In First Out)的原则,简称FIFO结构。
2、在队尾添加元素,在队头添加元素。

队列的存储结构

队列与栈一样是一种线性结构,因此以常见的线性表如数组、链表作为底层的数据结构。

队列的基本操作:

q.empty()             如果队列为空返回true,否则返回false
q.size()                返回队列中元素的个数
q.pop()                 删除队列首元素但不返回其值
q.front()               返回队首元素的值,但不删除该元素
q.push()                在队尾压入新元素
q.back()                返回队列尾元素的值,但不删除该元素
q.swap()     			交换两个队列的元素

在这里插入图片描述

代码:


#include<iostream>
#include<queue>
using namespace std;
int main()
{
	queue<int> q;
	cout << "如果队列为空返回true,否则返回false  q.empty():  " << q.empty() << endl;
	cout << "返回队列中元素的个数  q.size():  " << q.size() << endl<<endl;
	for (int i = 0; i < 10; i++)
	{
		q.push(i);
		cout << "在队尾压入新元素成功  q.push("<<i<<")"<<endl;
		cout << "在队尾压入的新元素  q.back(" << i << "): " << q.back() << endl;
	}
	cout <<endl<< "返回队列中元素的个数  q.size():  " << q.size() << endl;

	q.front();
	cout <<endl<< "执行q.front()  返回队首元素的值,但不删除该元素"<<endl;
	q.pop();
	cout << "执行q.pop()  删除队列首元素但不返回其值" << endl;
	q.front();
	cout << "执行q.front()  返回队首元素的值,但不删除该元素" << endl;
	cout << "返回队列中元素的个数  q.size():  " << q.size() << endl;
	return 0;
}

小结

队列底层是线性结构,把链表弄懂了就可以很轻松的理解队列的数据结构和操作。

如果想了解栈的基本操作,看一看这个c++ 栈 STL的基本操作

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STL队列基本操作包括: 1. push(x):将元素x放入队尾。 2. pop():将队头元素出队。 3. empty():判断队列是否为空,为空返回true,否则返回false。 4. size():返回队列的长度。 5. front():返回队头元素,不出队。 6. back():返回队尾元素。 具体的代码示例可以参考以下代码: ```cpp #include<bits/stdc++.h> using namespace std; queue<int> q; int p, x, n; int main() { cin >> n; for (int i = 1; i <= n; i++) { cin >> p; switch (p) { case 1: { cout << q.front() << endl; q.pop(); break; } case 2: { cin >> x; q.push(x); cout << "OK" << endl; break; } case 3: { if (q.empty()) cout << "true" << endl; else cout << "false" << endl; break; } case 4: { cout << q.size() << endl; break; } case 5: { cout << q.back() << endl; break; } } } return 0; } ``` 以上是一个使用STL队列的例子,根据输入的命令进行相应的操作,并输出结果。 引用: 目录 队列的定义队列的结构队列基本操作队列的定义方式和函数调用经典例题 附上代码:(可以试着用数组模拟做一做) push(x) push(x) push(x):将元素x放入队尾。pop() pop() pop():将队头元素出队。empty() empty() empty():判断队列是否为空,为空返回true true true,否则返回false false false。size() size() size():返回队列长度。front() front() front():返回队头元素,不出队。back() back() back():返回队尾元素。队列的定义方式和函数调用std::queue<_Tp> Queue_Name; //_Tp表示定义类型,Queue_Name处是该队列的名称。/*如果前面写了using namespace std或using std::queue,可以不写"std::"*/_Tp x;Queue_Name.push(x);//将元素放入队尾Queue_Name.pop();//弹出队头元素_Tp f=Queue_Name.front();//返回队头元素_Tp b=Queue_Name.back();//返回队尾元素bool Emp=Queue_Name.empty();//判断队列是否为空size_type size=Queue_Name.size();//返回队列的大小//size_type 可以理解为 unsigned int经典例题

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值