IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Extraire dans une map


Sujet :

C++

  1. #1
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 91
    Points
    91
    Par défaut Extraire dans une map
    Bonjour, j'ai crée une map qui est bien remplie (je l'ai verifie).
    Maintenant j'aimerais que ma méthode retourne un élément particulier de ma map.
    Le problème est qu'il ne rentre pas dans ma boucle et va directement au else.
    Tout me parait correct. Me parait...
    Merci.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    string Configuration::getValueOfConfigurationHash(void)
    {	cout<<"Hello"<<endl;
     
     
    if (myConfigurationHash.find("nom")!= myConfigurationHash.end())
    	{	cout<<"Hello2"<<endl;
    		return myConfigurationHash["nom"].str;
    		cout<<"Size : "<<myConfigurationHash.size()<<endl;
    		cout<<"myconfigurationHash : "<<myConfigurationHash["nom"].str<<endl;
    	}
     
    	else clog<<"Did not find : "<<"nom"<<" in myConfigurationHash"<<endl;
     
    }

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour,
    Peux-tu donner ta déclaration de ta map ?

  3. #3
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 91
    Points
    91
    Par défaut
    Cette méthode fonctionne très bien et je visualise ma map grâce au cout.

    Dans .h en private j'ai mis :
    map<string, my_struct> myConfigurationHash
    Dans .cpp en private j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    map<string, my_struct> Configuration::readLossesFromFile()
    {
    	myConfigurationHash.clear();
        ifstream fin("configuration.txt");
    	if(fin)
    	{
    		while(!fin.fail())
    		{
    			string line;
    			getline(fin, line);
    			if(fin.fail())
    				break;
     
     
    			if(tokens.size()!=3)
    			{
    				clog<<"Incomplete line: ignored"<<endl;
    				continue;
    			}
     
    			if(tokens[1]=="string")
    			{
    				my_struct b;
    				b.type=TYPE_STRING;
    				b.str=tokens[2];
    				myConfigurationHash[tokens[0]]=b;
    				cout<<"STRING: \""<<tokens[0]<<"\" : \""<<b.str<<"\""<<endl;
    			}
    			else if(tokens[1]=="int")
    			{
    				my_struct b;
    				b.type=TYPE_INT;
    				b.i=atoi(tokens[2].c_str());
    				myConfigurationHash[tokens[0]]=b;
    				cout<<"INT: \""<<tokens[0]<<"\" : "<<b.i<<endl;
    			}
    			else if(tokens[1]=="float")
    			{				
    				my_struct b;
    				b.type=TYPE_FLOAT;
    				b.f=atof(tokens[2].c_str());
    				myConfigurationHash[tokens[0]]=b;
    				cout<<"FLOAT: \""<<tokens[0]<<"\" : "<<b.f<<endl;
    			}
    			else
    			{
    				clog<<"Unknown type: "<<tokens[1]<<endl;
    			}
    		}
    	}
     
    	return myConfigurationHash;
    }

  4. #4
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 91
    Points
    91
    Par défaut
    Ok, en fait j' instanciais deux objets pour ma même classe, ce qui fais que lors de l'appelle de ma deuxième fonction, je n'étais plus dépendant de ce qui se passait dans ma première méthode.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de récupération dans une map
    Par sacdenoeud dans le forum C++
    Réponses: 7
    Dernier message: 26/03/2006, 08h40
  2. allocation dans une <map>
    Par elekis dans le forum C++
    Réponses: 3
    Dernier message: 28/09/2005, 22h30
  3. Destruction dans une map
    Par Clad3 dans le forum C++
    Réponses: 3
    Dernier message: 21/08/2005, 08h45
  4. Inserer des elements dans une map sans rangement ?
    Par Muetdhiver dans le forum C++
    Réponses: 3
    Dernier message: 07/09/2004, 11h09
  5. problème de références _ptr dans une map STL
    Par Mr_Tyu dans le forum CORBA
    Réponses: 1
    Dernier message: 10/08/2004, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo