Foros del Web » Programación para mayores de 30 ;) » C/C++ »

¿Como devolver el contenido de un map a partir del key?

Estas en el tema de ¿Como devolver el contenido de un map a partir del key? en el foro de C/C++ en Foros del Web. Buenas! Tengo el siguiente codigo con el que intento devolver un objeto que he metido antes: Código: std::map<std::string, object> loadedObjects; testclass tst; // testclass se ...
  #1 (permalink)  
Antiguo 28/09/2012, 14:01
 
Fecha de Ingreso: septiembre-2012
Mensajes: 38
Antigüedad: 9 años, 11 meses
Puntos: 0
¿Como devolver el contenido de un map a partir del key?

Buenas!
Tengo el siguiente codigo con el que intento devolver un objeto que he metido antes:

Código:
std::map<std::string, object> loadedObjects;
    testclass tst;  // testclass se extiende a object
    tst.name = "hector";
    loadedObjects.insert(std::pair<std::string, object>("gola",tst));
    std::map<std::string, object>::iterator i = loadedObjects.find("gola");
    if(i == loadedObjects.end())
        cout<<"no se ha encontado nada"<<endl;
    else
        cout<<*i->second<<endl;
El problema es que *i->second ( que según he leido por ahi deberia devolverme el valor) me da el siguiente error:

error: no match for 'operator*' in '*i.std::_Rb_tree_iterator<_Tp>::operator-> [with _Tp = std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, object>]()->std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, object>::second'

¿Alguna idea o correción?
  #2 (permalink)  
Antiguo 28/09/2012, 16:38
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 19 años, 6 meses
Puntos: 22
Respuesta: ¿Como devolver el contenido de un map a partir del key?

Debería ser:

Código C++:
Ver original
  1. i->second

o bien:

Código C++:
Ver original
  1. (*i).second
  #3 (permalink)  
Antiguo 30/09/2012, 07:35
 
Fecha de Ingreso: septiembre-2012
Mensajes: 38
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: ¿Como devolver el contenido de un map a partir del key?

Cierto, ese era el fallo. Muchas gracias!

Etiquetas: c++, map, std
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:53.