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

SL & STL C++ Discussion :

graphe , insertion d'un liste des coordonnee


Sujet :

SL & STL C++

  1. #1
    Invité
    Invité(e)
    graphe , insertion d'un liste des coordonnee
    Bonjour,
    j'ai un travail a faire et j'ai quelques problemes au niveau d'insertion des coordonnee dans un graphe
    la structure de ma graphe et la suivante:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
          struct Sommet{
            mutable bool visite;
            set<std::string> voisins; 
            Coordonnee coor ; // C'est une classe qui fonctionne bien
            Sommet(Coordonnee& c):coor(c){}
        };
     
        map<std::string, Sommet> sommets;   //type S




    lorsque je veux insérer des donnes après la lecture d'un fichier , il y a un message bizarre que je ne trouve pas la solution

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    void Carte::ajouterLieu(const string& nom, const Coordonnee& c){
     
      sommets.insert(std::make_pair(nom, Sommet(c)));
    }


    le message d'erreur est :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    error: no matching function for call to Carte::Sommet::Sommet(con                                                                   st Coordonnee&)â


    le probleme c'est au niveau de la Const du coordonne

  2. #2
    Membre chevronné
    (Rapide réponse)
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Sommet(Coordonnee const & c):coor(c){}

    c n'est pas modifié, mets le en const.

  3. #3
    Invité
    Invité(e)
    Citation Envoyé par Ehonn Voir le message
    (Rapide réponse)
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Sommet(Coordonnee const & c):coor(c){}

    c n'est pas modifié, mets le en const.
    merci c'est resolu

  4. #4
    Invité
    Invité(e)
    si je veux insere des donnes +une liste dans un map
    ou le map est definit comme suivant
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
     map<std::string,Sommet > rue;


    est la fonction d'ajout d'une rue est :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void Carte::ajouterRue(const string& nom, list<string>& rue){
     
     
       routes.insert(std::make_pair(nom , Sommet(route)); // mal develloper je ne sais pas comme ent ajouter une liste dans un map 
    }

  5. #5
    Expert confirmé
    Citation Envoyé par nejibos Voir le message
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    void Carte::ajouterRue(const string& nom, list<string>& listenomlieux){
       routes.insert(std::make_pair(nom , Sommet(listenomlieux)); // mal develloper je ne sais pas comme ent ajouter une liste dans un map 
    }
    Citation Envoyé par nejibos Voir le message
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Sommet(const Coordonnee& c):coor(c){}
    Les types ne sont pas bons, à moins que tu ai un constructeur implicite dans Coordonnee pour "convertir" la list<string> en Coordonnee ?