J'ai un blème d'utilisation d'une map de deux string (dans mon code, la map "parametres" ) :
Voici une méthode qui permet, par le biais d'un itérateur, de balayer l'ensemble des éléments de la map, puis d'assigner le parametres qui nous convient. Ici, la classe terminal possede le parametre privé : advancedPrediction. Je veux que des que je retrouve le parametre dans la map, il me place le contenu associé dans la valeur privée de l'objet.
Exemple : si dans la map, on a advancedPrediction = FALSE
je veux faire, dans l'objet associé à Terminal, advancedPrediction = "FALSE";
Je procède donc comme suit (pour l'instant ! la commande fonctionne mieux avec find que si je fais direcement la comparaison avec la chaine, donc je ne bougerai pas ca).
Le code :
Code :
- void Terminal::assign_param(){
- std::map<std::string, std::string>::iterator iter = parametres.begin () ;
- while (iter != parametres.end ()) {
- std::cout << iter -> first << " : " << iter -> second <<std::endl ;
- if(iter -> first.find("advancedPrediction " )!=-1){advancedPrediction = iter -> second;}
- iter ++;
- }
- std::cout<<std::endl << advancedPrediction << std::endl;
- }
|
Le programme tombe bien sur la bonne clé, mais lors de l'assignation de la valeur associée a la clé dans le parametre privé, il plante tout simplement, sans me laisser quelque code d'erreur que ce soit. Vous savez pourquoi ?
Message édité par Thordax le 26-04-2006 à 16:43:55