C++ std::map

Gilloull -  
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous.


Je cherche à créer une petite base de données en C++.

Pour cela, je dispose de trois classes : Base ; Table ; Document.

Cela ressemble à un mini répertoire avec pour attribut de Document (nom, prenom, age).

Je débute complètement avec les std::map et voila ce que l'on m'a demandé de faire :

chaque table contient un tableau (std::map) de document ;
chaque base contient un tableau (std::map) de table ;

Pour l'instant, je suis bloqué dans le fait d'aller chercher les attribut d'un Document stocké dans la map.

Ma table dispose d'un attribut

std::map <int, Document> m_mapDoc;

Je rempli cette map à l'aide de la méthode :

void Table::ajoutDoc (int clefDoc, Document doc)
{
m_mapDoc.insert(pair < int, Document > (clefDoc, doc));
}


que j'appelle dans le main par :

tab.ajoutDoc(1, doc1);

Mon problème : Comment acceder aux attribut d'un document (age, nom, prenom) à travers la map ?

J'ai essayé des choses comme :

cout << tab.m_mapDoc[1].getNom() << endl;

mais cela ne marche pas...

Merci d'avance !!

Gilloull

1 réponse

Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
cout << tab.m_mapDoc[1].getNom() << endl;

je ne crois pas dire de bêtise en te disant que c'est la bonne syntaxe.


voir http://www.cplusplus.com/reference/map/map/

c'est peut-être un problème qui vient de la manière dont tu crées tes objets Document. Tu les crées dynamiquement ? tu as fait un constructeur de copie ? (puisque tu les passes dans ta fonction par copie et non par référence)


mais cela ne marche pas...

erreur à la compilation ? Si oui, quel message?
0