Un cordial saludo.
Me encuentro realizando un algoritmo en el programa Falcon C++. Un parte del algoritmo trata de ingresar artículos con su respectiva cantidad, esto lo implemente y funciona perfectamente. La cuestión es que no logro hacer que no se agreguen artículos que ya existen (si se ingresa un articulo y este ya existe, el mismo no se debe guardar / almacenar en el vector). Dicha parte del algoritmo deberia de funcionar asi: si se detecta que el usuario digito un articulo y presiono la tecla enter, el algoritmo deberá detectar si dicho articulo ya existe, si existe no se deberá dejar ingresar dicho articulo porque ya existe, notificara que ya existe y procedera a solicitar el siguiente articulo.
¿Cómo podría implementar la parte de que impida almacenar articulos repetidos?- Aportó el codigo por si se requiere
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cstdio>
using namespace std;
vector <string> art;
vector <string> canti;
vector <string> art_cero;
string articulo, cantidad;
int can, opc, a, b, c, n;
void Uno(int cant)
{
for (int i=0; i<cant; i++)
{
cout<<endl<<endl<<" Ingrese art\241culo No."<<i+1<<": ";
cin>>articulo;
art.push_back(articulo);
b=b+1;
cout<<endl<<" Ingrese su cantidad: ";
cin>>cantidad;
canti.push_back(cantidad);
if (b>1)
{
for(int i=0; i<art.size(); i++)
{
if(articulo==art[i])
{
c=c+1;
cout<<articulo;
if(c>1)
{
cout<<endl<<"El articulo existe, no sera agregado";
art.pop_back();
canti.pop_back();
c=0;
}
}
}
}
}
}
void Dos(int cant)
{
if(cant==0)
{
cout<<endl<<endl<<endl<<" No existen articulos con sus cantidades, registrelos";
}
else
{
for (int i=0; i<art.size() && canti.size(); i++)
{
cout<<endl<<endl<<" Articulo: "<<art[i]<<endl;
cout<<" Cantidad: "<<canti[i]<<endl;
}
}
}
void Tres(int cant)
{
for (int i=0; i<art.size() && canti.size(); i++)
{
if(canti[i]=="0")
{
art_cero.push_back(art[i]);
}
}
for (int i=0; i<a; i++)
{
cout<<endl<<endl<<" "<<art_cero[i];
cout<<" Cantidad : 0"<<endl;
}
}
int main()
{
// Se indican los ejercicios que contiene el algoritmo y su opcion o numero de acceso o ejecución
cout<<endl<<endl<<endl<<endl<<endl<<" |-| Opciones |-|"<<endl<<endl;
cout<<endl<<" 1) Ingresar articulos con sus respectivas cantidades";
cout<<endl<<" 2) Imprimir la lista total de art\241culos";
cout<<endl<<" 3) Consultar articulos cuya existencia sea 0";
cout<<endl<<" 4) Salir"<<endl<<endl;
cout<<endl<<" Introduzca una opcion de 1 a 4: ";
cin>>opc;
do
{
switch(opc)
{
case 1:
{
system ("cls");
cout<<endl;
printf("%c",168);cout<<" Cuantos art\241culos desea ingresar?: ";
cin>>can;
Uno(can);
cout<<" ----------------------------------------------";
return main();
break;
}
case 2:
{
Dos(can);
cout<<endl<<" ----------------------------------------------";
return main();
break;
}
case 3:
{
Tres(can);
cout<<" ----------------------------------------------";
return main();
break;
}
case 4:
{
// Se finaliza el programa
cout<<endl<<endl<<endl<<endl;
exit(0);
break;
cout<<" ----------------------------------------------";
return main();
break;
}
default:
// Se indica que no hay nada que ejecutar dentro de las opciones dadas
system ("cls");
cout<<endl<<" El numero ingresado no esta relacionado a una opci\242n"<<endl<<endl;
cout<<" ----------------------------------------------"<<endl<<endl;
return main();
break;
}
}
while(opc!=6);
cout<<endl<<endl;
}
No les pido que me realicen el código porque esa no es la idea, lo que deseo es: ¿saber como se puede dar solución a esto, lo que explique al principio?
Gracias de antemano por vuestra atención y ayuda.