begin process at 2012 05 28 21:53:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Base de données

 > 

Autre

 > 

Comment utiliser de maps STL avec des objets


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment utiliser de maps STL avec des objets

samedi 21 juin 2008 à 12:37:28 | Comment utiliser de maps STL avec des objets

tony0093

Bonjour à tous, dans le cas d'un projet de moteur de bdd en C++, je dois en fait recréer un moteur type Mysql mais en C++, j'ai donc plusieurs classes qui contiennent chacune un conteneurs ,
voici mes classes:

- la classe Base qui contient un conteneur map<int,Table>tables
- la classe Table qui contient un conteneur map<int,Champ>champs
-
la classe Champ qui contient un conteneur map<int,Data>data
- la classe Data

et mon porblème est de savoir si cette structure est bonne car je n'arrive pas à implémenter mes maps cad mettre des objets de types Classe dans mes maps et les récupérer.
j'arrive à les ajouter en faisant un truc comme ça mapTables[int]=monObjetTypeTable dans une fonction addTable()
mais, ensuite pour récupérer les infos de mon objet(enregistré dans la map), je crée un iterator sur la map mapTables et je parcoure tous les éléments de la map, j'affiche j'essaye de récupérer la valeur indexée avec:
    for( it = mapTables.begin(); it != mapTables.end(); it++ ) {
            Table Tab = (*it).second;
            cout<< it->first <<" - "<<Tab.getTableNom()<<endl;
       }
ça m'affiche rien du tout, je comprend pas, est-ce que il y a quelque chose que j'ai mal cerné, ou avez vous des exemples d'utilisation des conteneurs STL qui pourrait correspondre à ce que je cherche à faire?

Je dois ensuite enregistrer dans des fichiers et charger mes conteneurs en lisant les fichiers.( j'ai une très vague idée de la façon de faire dailleurs )

Je suis newbe en C++ je galère énormément alors que c'est pas la motivation qui manque, juste besoin d'une grosse aide que je viens chercher sur ce forum

Voilà, en éspérant que vous avez cerné mon pb et que vous aurez envie de m'aider

merci

samedi 21 juin 2008 à 14:11:55 | Re : Comment utiliser de maps STL avec des objets

luhtor

Hm, faut faire attention à ce que tu écris:
"Table Tab = (*it).second;"

Tu as une idée de ce qu'il se passe ici ? L'opérateur d'affectation "=" est appelé pour copier ton objet. Donc dans le meilleur des cas, ca n'est catastrophique que pour les performances et le pire des cas, c'est si ton objet n'est pas copiable. Donc si ca fait pas ce que tu veux, c'est peut etre que ca copie d'objet est incorrecte.

Faut soit utiliser un pointeur, soit une référence, soit rien du tout ! pour éviter la copie d'objet.

1)
Table * Tab = & it->second;
cout<< it->first <<" - "<<Tab->getTableNom()<<endl;

2)
Table & Tab = it->second;
cout<< it->first <<" - "<<Tab.getTableNom()<<endl;

3)
cout<< it->first <<" - "<<it->second.getTableNom()<<endl;

Et je vais me répéter mais, un débuggeur a ton avis, ca sert a quoi ?
samedi 21 juin 2008 à 17:01:28 | Re : Comment utiliser de maps STL avec des objets

tony0093

Merci luthor, j'avais déjà essayé plusieurs solutions dont celles que tu as mentionné mais ça ne tourne tjrs pas, à cause d'autre chose très certainement, donc j'ai pris des vector car j'ai pas trop le temps de me prendre la tête...
merci quand même d'avoir pris le temps de m'aider



Cette discussion est classée dans : classe, stl, it, maps, maptables


Répondre à ce message

Sujets en rapport avec ce message

attribut de classe de la STL [ par MLine ] Slut,je définis un attribut de classe :static vector > vectorg;qui est donc un tableau de pointeurs sur des instances de la classe Organism.Je l'utili Fonction find du STL [ par saturne_1606 ] Bonjour a tous!Voila mon prob:g un exo1.h comme suit:#include #include class personne{ protected : s [STL] vector d'une classe [ par Fa7 ] Bonjour J'ai un probleme. j'ai un vecteur d'une classe que j'ai definie vector vectGraph; et quand je je veux ajouter un graphe dans le vecteur: Gra STL vector et tableau [ par cybermax62 ] j'ai une petite question sur la classe template vector. je sais que c'est possible d'initiliser un vector avec un tableau point de vue C (char[]). j'a classe template et list stl ou pile [ par abdoulax ] Boujour, Je voudrai créer une liste de classe contenant un template, comment puis je faire ?? list>   //c'est pas possible et en ce qui concerne la STL vector et classes abstraites, possibles ?? [ par RV2931 ] Bonjour,j'aurai voulu savoir si c'était possible de créer un STL::vector d'une classe abstraite ???  vector, ça j'y crois pas trop, mais vector  avec Liste STL sur une classe [ par zekicker ] Bonjour, Voilà, Je voudrai créer une liste chainée à l'aide de list de la STL. Chaque noeud doit être une classe. Je ne sais pas comment m'y prendre Surcharge de l'opérateur << [ par kenjimax ] Bonjour à tous, Je rencontre un petit probleme avec la surcharge de l'opérateur <<. Dans une classe mere, je veux afficher les caractéristiques d'un problem avec la classe TThread de BCB6 [ par hrp ] Bonjour, j'ai créé 2 applications developpées avec BCB6:server: suppervise quelques applications locales (vérifie les processus présents)client: inter TXMLDocument C++ Builder [ par omarplus ] SAlut tt le mondej'ai un problème avec la Classe "TXMLDocument":lorsque j'enregistre un document XML avec cette classe, il est enregistré dans une seu


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales