Boonjour à tous et bonne année,
J'aimerais avoir votre aide concernant un problème auquel je suis confronté actuellement en c++.
J'ai une map définie de la facon suivante :
Dans ma classe Recette j'ai un attribut de ce type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2typedef map<Quantite*, Ingredient*> quantite_ingredient_map;
Pour ajouter dedans j'utilise cette méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 quantite_ingredient_map _m;
Mon problème survient lorsque je souhaite parcourir ma map de cette manière :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void Recette :: ajouter_composant(Quantite* q,Ingredient* i){ _m.insert(make_pair(q,i)); }
J'ai le droit d'avoir cette magnifique erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 if( !_m.empty() ) { quantite_ingredient_map::iterator itt; for (itt = _m.begin(); itt != _m.end(); itt++) { ((*itt).first).afficherDec(os,1); } }
Là je suis complètement bloqué depuis 2h et je ne comprends pas d'où peut venir ce problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 no match for 'operator=' in 'itt = (((const quantite_ingredient_map*)((const Recette*)this)) + 20u)->std::map<_Key, _Tp, _Compare, _Alloc>::begin [with _Key = Quantite*, _Tp = Ingredient*, _Compare = std::less<Quantite*>, _Alloc = std::allocator<std::pair<Quantite* const, Ingredient*> >]()'
Merci d'avance à tous ceux qui prendront le temps de me lire et de me répondre.
Louis
Partager