Bonjour! Petite question dont je soupçonne la réponse d'être évidente, cependant je début en C++ alors soyez cléments

J'ai le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
//Dans un fichier .h
typedef std::pair<std::string,float> Cours;
typedef std::vector<std::shared_ptr<Cours> > VecCours;
 
//Dans une définition de classe du même .h
VecCours vecCours_;
VecCours::iterator it;
 
//Dans l'implémentation d'une méthode dans un .cpp
for(it = vecCours_.begin() ; it != vecCours_.end() ; it++)
		moyenne += (*it)->second;
J'ai une erreur de syntaxe, l'opérateur = dans le for, it = vecCours_.begin() n'est pas définit....je ne comprend pas...pouvez-vous m'aider ?
Le code suivant ne donne aucune erreur...pourquoi? Quel est la différence avec celui que j'ai posté?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
typedef vector<shared_ptr<pair<string,int> > > MyVect;
void test()
{
	MyVect v;
	MyVect::iterator it;
	for(it = v.begin() ; it != v.end() ; it++);
}
Merci d'avance!

EDIT: Arf...un truc avec une méthode constante et l'utilisation d'un itérateur non constant....désolé