prob parcours map clé pointeur
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 :
Code:
1 2
|
typedef map<Quantite*, Ingredient*> quantite_ingredient_map; |
Dans ma classe Recette j'ai un attribut de ce type :
Code:
1 2
|
quantite_ingredient_map _m; |
Pour ajouter dedans j'utilise cette méthode :
Code:
1 2 3 4
|
void Recette :: ajouter_composant(Quantite* q,Ingredient* i){
_m.insert(make_pair(q,i));
} |
Mon problème survient lorsque je souhaite parcourir ma map de cette manière :
Code:
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);
}
} |
J'ai le droit d'avoir cette magnifique erreur :
Code:
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*> >]()' |
Là je suis complètement bloqué depuis 2h et je ne comprends pas d'où peut venir ce problème.
Merci d'avance à tous ceux qui prendront le temps de me lire et de me répondre.
Louis