Précédent   Forum du club des développeurs et IT Pro > C et C++ > C++ > Débuter
Débuter Forum d'entraide pour débuter en langage de programmation C++. Avant de poster : cours d'initiation au C++
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/02/2013, 22h59   #1
devdeb91
Membre du Club
 
Avatar de devdeb91
 
Homme kevin baes
Étudiant
Inscription : janvier 2013
Messages : 222
Détails du profil
Informations personnelles :
Nom : Homme kevin baes
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2013
Messages : 222
Points : 41
Points : 41
Par défaut probleme avec std::map

bonjour

tout d'abord voici le code

Code :
1
2
3
4
5
6
struct SCoffre {
        SCoffre(std::string containt):
        contenue(containt){}
 
    std::string contenue;
};
Code :
std::map<Position, SCoffre> coffres;
Code :
1
2
3
4
5
6
7
8
9
 Position coffreContaint(size_t x, size_t y)
        {
            auto it = coffres.find(Position(x,y));
            if(it == coffres.end())
            {
                return Position(0,0);
            }
            return it->second.contenue;
        }
donc voila le code et voila le probleme

Code :
E:\projet\jeu2\main.h|98|error: could not convert 'it.std::_Rb_tree_iterator<_Tp>::operator-><std::pair<const Position, SCoffre> >()->std::pair<const Position, SCoffre>::second.SCoffre::contenue' from 'std::string {aka std::basic_string<char>}' to 'Position'|
l'erreur ce situe a l'endroit
Code :
return it->second.contenue;
auriez vous une idée de se qu'il demande car moi je seche

edit : finalement probleme resolu désoler du post inutile
devdeb91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2013, 23h33   #2
koala01
Modérateur
 
Avatar de koala01
 
Philippe Dunski
Inscription : octobre 2004
Messages : 8 603
Détails du profil
Informations personnelles :
Nom : Philippe Dunski
Âge : 41

Informations forums :
Inscription : octobre 2004
Messages : 8 603
Points : 13 243
Points : 13 243
Envoyer un message via MSN à koala01 Envoyer un message via Skype™ à koala01
Salut,

Le message est pourtant clair...

Tu indiques que la fonction coffreContaint doit renvoyer un objet de type Position.

Or, tu essayes de renvoyer la chaine de caractères "contenue" que l'on trouve dans la structure SCoffre.

Le compilateur se plaint donc de ne pas être en mesure de convertrir la std::string "contenue" en ... Position, et c'est normal

Si tu veux obtenir la Position qui a servi de clé pour le tri de la map, tu dois renvoyer, tout simplement, la valeur de l'élément "first" de l'itérateur trouvé, sous la forme de
Code :
1
2
3
4
5
6
7
8
9
Position coffreContaint(size_t x, size_t y)
        {
            auto it = coffres.find(Position(x,y));
            if(it == coffres.end())
            {
                return Position(0,0);
            }
            return it->first;
        }
__________________
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
je ne répondrai à aucune question technique par E-mail, message visiteur ou message privé
Vous avez obtenu votre réponse pensez au bouton en bas de page
koala01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2013, 23h52   #3
devdeb91
Membre du Club
 
Avatar de devdeb91
 
Homme kevin baes
Étudiant
Inscription : janvier 2013
Messages : 222
Détails du profil
Informations personnelles :
Nom : Homme kevin baes
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2013
Messages : 222
Points : 41
Points : 41
oui merci j'ai remarqué peu après le post que j'avais mal renseigné le type de renvoie en haut
devdeb91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h54.


 
 
 
 
Partenaires

Hébergement Web