文章目录
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();用以代替自己创建队列