C++ std::map
Gilloull
-
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Std::map c++
- Google map satellite gratuit - Guide
- Telecharger carte google map - Guide
- Google map ma position - Guide
- Itinéraire google map entre deux adresses - Guide
- Historique trajet google map - Guide
1 réponse
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?
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?