1262Fermer1264
JyaifLe 14/05/2010 à 14:16
Folco (./1254) :
J'ai aps réussi à utiliser l'opérateur [] du conteneur map... ( http://www.cplusplus.com/reference/stl/map/operator%5B%5D/ )

J'ai utilisé find() à la place, avec succès :
void Message::sendMessage(int ID)
{
    m_EntriesList->find(ID)->second->receive();
}


Mais à la base, je voulais écrire quelque chose du genre :
void Message::sendMessage(int ID)
{
    *m_EntriesList[ID]->receive();
}

avec:
    std::map<int, Receive*> *m_EntriesList;
et:
    m_EntriesList = new std::map<int, Receive*>;

Mais cette "solution" ne compilait pas,je ne sais pas trop pourquoi...
Sinon, j'arrive à faire les autres manipulations d'insertion et d'effacement dans le conteneur. smile

À la place de:
*m_EntriesList[ID]->receive();
Essaye de faire:
(*m_EntriesList)[ID]->receive();
Si ça ne résoud pas ton problème de compilation, je ne sais pas où il peut être.

Et (probablement) rien à voir:
est-ce que:
m_EntriesList = new std::map<int, Receive*>;
compile?

Quoi qu'il en soit, je pense que:
m_EntriesList = new std::map<int, Receive*>();
est mieux.