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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
typedef map<Quantite*, Ingredient*> quantite_ingredient_map;
Dans ma classe Recette j'ai un attribut de ce type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
quantite_ingredient_map _m;
Pour ajouter dedans j'utilise cette méthode :
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));
}
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
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 : 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*> >]()'
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