Basicamente preciso chamar o primeiro da fila (sendo que é uma fila Pac e uma Sedex), mas quando chamo la no menu ele chama todos de uma fila só.
#include <iostream>
#include <queue>
using namespace std;
struct pessoa{
string nome, rua, cidade, cep;
int numero;
int frente;
};
void imprimir(queue<pessoa> fila){
if(fila.empty()){
cout << "Fila vazia\n";
return;
}
while(!fila.empty()){
cout << "PAC - " << fila.front().nome << " - " << fila.front().cep << " - " << fila.front().rua << " - " << fila.front().numero << " - " << fila.front().cidade << endl;
fila.pop();
}
cout << endl;
}
void imprimir1(queue<pessoa> fila){
if(fila.empty()){
cout << "Fila vazia\n";
return;
}
while(!fila.empty()){
cout << "Sedex - " << fila.front().nome << " - " << fila.front().cep << " - " << fila.front().rua << " - " << fila.front().numero << " - " << fila.front().cidade << endl;
fila.pop();
}
cout << endl;
}
void chamarProximo(queue<pessoa> filaPac){
int pri = 0;
if(filaPac.empty()){
cout << "Fila vazia\n";
return;
}
while(!filaPac.empty() ){
cout << "Fila PAC ->" << filaPac.front().nome << " - " << filaPac.front().rua << " - " << filaPac.front().numero << " - " << filaPac.front().cep << " - " << filaPac.front().cidade;
//filaPac.pop();
}
cout << endl;
}
void chamarProximo1(queue<pessoa> filaSedex){
while(!filaSedex.empty() ){
cout << "Fila Sedex ->" << filaSedex.front().nome << " - " << filaSedex.front().rua << " - " << filaSedex.front().numero << " - " << filaSedex.front().cep << " - " << filaSedex.front().cidade;
filaSedex.pop();
}
cout << endl;
}
void inserir(queue<pessoa> &fila, string nome, string cep,int numero , string rua, string cidade){
pessoa p1;
p1.nome = nome;
p1.cep = cep;
p1.numero = numero;
p1.rua = rua;
p1.cidade = cidade;
fila.push(p1);
}
int main() {
queue<pessoa> filaPac;
queue<pessoa> filaSedex;
queue<pessoa> fila;
int op;
int op2;
do{
cout << "\n1- Adicionar pessoas na fila. \n";
cout << "2- Chamar próximo da fila, informando a fila correspondente. \n";
cout << "3- Mostrar as filas. \n";
cout << "4- Sair.";
cout << "\nOpção: \n";
cin >> op2;
switch(op2){
case 1:
{
cout << "\nESCOLHA O TIPO DE SERVIÇO PARA ENVIO\n";
cout << "\n1- PAC. \n ";
cout << "2- Sedex. \n";
cout << "Opção: \n";
cin >> op;
switch(op){
case 1:
{
string nome, cidade, rua, cep;
int numero;
cout << "\nDigite o nome: \n";
cin >> nome;
cout << "\nDigite a rua: \n";
cin >> rua;
cout << "\nDigite o numero: \n";
cin >> numero;
cout << "\nDigite o cep: \n";
cin >> cep;
cout << "\nDigite a cidade: \n";
cin >> cidade;
inserir(filaPac, nome, cep, numero, rua, cidade);
cout << endl;
}
break;
case 2:
{
string sedex, nome, cidade, rua, cep;
int numero;
cout << "\n Digite o nome: \n";
cin >> nome;
cout << "\nDigite a rua: \n";
cin >> rua;
cout << "\nDigite o numero: \n";
cin >> numero;
cout << "\nDigite o cep: \n";
cin >> cep;
cout << "\nDigite a cidade: \n";
cin >> cidade;
inserir(filaSedex, nome, cep, numero, rua, cidade);
cout << endl;
}
break;
} //case1op2
break;
case 2:
{
//chamaroproximodafila
}
break;
}//switchop
case 3:
{
imprimir(filaPac);
imprimir1(filaSedex);
}
break;
case 4:
{
cout << "saindo...";
}
} //switchop2
}while(op2 != 0);
}