注:这部分为网上贴的;
queue 的基本操作有:
入队,如例:q.push(x); 将x 接到队列的末端。
出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问队首元素,如例:q.front(),即最早被压入队列的元素。
访问队尾元素,如例:q.back(),即最后被压入队列的元素。
判断队列空,如例:q.empty(),当队列空时,返回true。
访问队列中的元素个数,如例:q.size()
举个题目例子:<PTA.7-18 银行业务队列简单模拟>
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
int main() {
int num,i,k = 0;
scanf("%d", &num);
queue<int> A,B;//定义两个队列
for (int i = 0; i < num; i++) {
int temp;
scanf("%d", &temp);
if(temp % 2){ //奇数
A.push(temp);
}
else{
B.push(temp);
}
}
if(!A.empty()){
printf("%d", A.front());//A是奇数的情况
A.pop();
k = 1;
}
else{//如果没有,就输出B
printf("%d", B.front()); //B是偶数的情况
B.pop();
}
while(!B.empty() || !A.empty()){ //至少一个非空
k++;
if(k % 2){
if(!A.empty()){
printf(" %d", A.front());
A.pop();
}
}
else{
if(!A.empty()){
printf(" %d", A.front());
A.pop();
}
if(!B.empty()){
printf(" %d", B.front());
B.pop();
}
}
}
printf("\n");
return 0;
}
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
int main() {
int num,i,k = 0;
scanf("%d", &num);
queue<int> A,B;//定义两个队列
for (int i = 0; i < num; i++) {
int temp;
scanf("%d", &temp);
if(temp % 2){ //奇数
A.push(temp);
}
else{
B.push(temp);
}
}
if(!A.empty()){
printf("%d", A.front());//A是奇数的情况
A.pop();
k = 1;
}
else{//如果没有,就输出B
printf("%d", B.front()); //B是偶数的情况
B.pop();
}
while(!B.empty() || !A.empty()){ //至少一个非空
k++;
if(k % 2){
if(!A.empty()){
printf(" %d", A.front());
A.pop();
}
}
else{
if(!A.empty()){
printf(" %d", A.front());
A.pop();
}
if(!B.empty()){
printf(" %d", B.front());
B.pop();
}
}
}
printf("\n");
return 0;
}