Contest100000600 - 《算法笔记》6.5小节——C++标准模板库(STL)介绍->queue的常见用法详解

Contest100000600 - 《算法笔记》6.5小节——C++标准模板库(STL)介绍->queue的常见用法详解

6.3 queue的常见用法详解

Queue翻译为队列,理解为一个先进先出的容器

1. queue的定义

在这里插入图片描述

2. queue容器内元素的访问

由于其先进先出的特性,因而***只能通过front()来访问队首元素,或是通过back()来访问队尾元素***

在这里插入图片描述

3. queue常用函数实例解析

(1)push()

在这里插入图片描述

(2)front()、back()

在这里插入图片描述

(3)pop()

在这里插入图片描述

(4)empty()

在这里插入图片描述

(5)size()

在这里插入图片描述

queue函数整合代码

//queue函数代码整合 
#include <iostream>
#include <queue>
using namespace std;

int main(){
	queue<int> q;
	cout<<"初始化queue q为:"; 
	if(q.empty() == true){
		printf("Empty!");
	}
	cout<<endl; 
	
	//----1---push() 
	for(int i = 1;i <= 5;i++){
		q.push(i);//push(i)用以将i压入队列,依次入队1 2 3 4 5 
	}
	
	//----2---front()、back() 
	printf("%d %d\n",q.front(),q.back());

	//----3---pop()
	for(int i = 1;i <= 3;i++){
		q.pop();//输出队首元素3次,依次输出1 2 3 
	}
	printf("%d\n",q.front(),q.back());
	
	//----4---empty()
	cout<<"此时q为空吗,不为空有几个元素:"; 
	if(q.empty() == false){
		printf("Not Empty!\n");
	}

	//----5---size()
	cout<<"此时q有"<<q.size()<<"个元素";
	cout<<endl;
	return 0;
}


4.queue的常见用途

在这里插入图片描述

Codeup习题

Contest100000600 - 《算法笔记》6.5小节——C++标准模板库(STL)介绍->queue的常见用法详解
链接: http://codeup.cn/contest.php?cid=100000600

1863-ProblemA-C语言-数字交换

链接:http://codeup.cn/problem.php?cid=100000600&pid=0

//1863-ProblemA-C语言-数字交换
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;

int main(){
	int num[15]={0};
	while(cin >> num[0]){
		for(int i=1;i<10;i++){
			cin>>num[i];
		}
		//若min、max在同一个for循环,会出现50%的错误,
		//可能是两者交叉对彼此产生了影响,所以应该分开看 
		int min=0,max=0;
		for(int i=1;i<10;i++){
			if(num[min] > num[i]){
				min = i;
			}
		}
		//将其中最小的数与第一个数对换,把最大的数与最后一个数对换
		swap(num[0],num[min]);
		for(int i=1;i<10;i++){
			if(num[max] < num[i]){
				max = i;
			}
		}
		swap(num[max],num[9]);
		for(int i=0;i<10;i++){
			cout<<num[i]<<" ";
		}
		cout<<endl;	
	}
	return 0;
}


小结

queue队列为先进先出的容器,只能通过front()访问队首,back()访问队尾;常用函数有push()、front()、back()、pop()、empty()、size();用以代替自己创建队列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李霁明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值