Ver Mensaje Individual
  #8 (permalink)  
Antiguo 13/04/2016, 04:23
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Tengo este algoritmo: Duda con condicional

Hay formas de saber si la clave existe o no en el mapa:
Código C++:
Ver original
  1. int main()
  2. {
  3.   std::map<int,int> mapa;
  4.   mapa.insert(std::make_pair(1,11));
  5.   mapa.insert(std::make_pair(4,67));
  6.   mapa.insert(std::make_pair(9,18));
  7.   mapa[5] = 22;
  8.  
  9.   for( auto i=0; i<10; i++ )
  10.   {
  11.     if( mapa.count(i) == 0 )
  12.       std::cout << "La clave " << i << " no existe en el mapa\n";
  13.     else
  14.       std::cout << "mapa[" << i << "] = " << mapa[i] << "\n";
  15.   }
  16. }

Para evitar lanzar dos búsquedas por cada clave que existe en el mapa se pueden usar también iteradores:

Código C++:
Ver original
  1. int main()
  2. {
  3.   std::map<int,int> mapa;
  4.   mapa.insert(std::make_pair(1,11));
  5.   mapa.insert(std::make_pair(4,67));
  6.   mapa.insert(std::make_pair(9,18));
  7.   mapa[5] = 22;
  8.  
  9.   for( auto i=0; i<10; i++ )
  10.   {
  11.     auto it = mapa.find(i);
  12.     if( it == mapa.end() )
  13.       std::cout << "La clave " << i << " no existe en el mapa\n";
  14.     else
  15.       std::cout << "mapa[" << i /* tambien se puede usar it->first */ << "] = " << it->second << "\n";
  16.   }
  17. }
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.