Partage
  • Partager sur Facebook
  • Partager sur Twitter

Noob cherchant à comprendre une erreur

Sujet résolu
    8 septembre 2018 à 16:49:44

    Bonjour à tous !

    Je suis un débutant en C++ (j'ai commencé il y a deux semaines environ) et je prie quiconque lira ce message de bien vouloir m'apporter des éclaircissements.

    int main()
    {
    	using exerciseType = int(*)(int, int);
    
    	vector<exerciseType> funcVec;
    
    	funcVec.push_back(Add);
    	funcVec.push_back(Substract);
    	funcVec.push_back(Multiply);
    	funcVec.push_back(Divide);
    
    	int v1, v2;
    	cin >> v1 >> v2;
    
    	for (auto beg = funcVec.begin(); beg != funcVec.end(); ++beg)
    		cout << funcVec[beg](v1, v2) << endl;
    } 

    Ce code me renvoie une erreur concernant l'itérateur beg.

    A noter que tout fonctionne si j'utilise une range for à la place. J'aurais cependant aimé comprendre la source de mon erreur, si quelqu'un a la gentillesse de m'aider.

    Je n'ai pas joint d'autres éléments car le code est très simple ; cependant c'est la première fois que j'ouvre un topic relatif au C++, je vous invite par conséquent à m'interpeller si j'ai omis des détails ou informations.

    Merci.

    -
    Edité par MathieuJacq 8 septembre 2018 à 16:50:56

    • Partager sur Facebook
    • Partager sur Twitter
      8 septembre 2018 à 16:54:00

      Salut,

      Le moyen le plus simple pour que l'on t'aide est que tu nous donnes aussi l'erreur que tu observes

      Ceci dit, un itérateur n'est pas un index. Pour accéder à l'élément derrière l'itérateur, il faut déréférencer l'itérateur.

      • Partager sur Facebook
      • Partager sur Twitter
      C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
        8 septembre 2018 à 17:08:54

        Merci de ta réponse... Et oui, je me suis servi de l'itérateur comme d'un index.

        Tout fonctionne en déréférençant l'itérateur. Je vais de ce pas me flageller.

        Bonne continuation et navré d'avoir pris de ton temps.

        • Partager sur Facebook
        • Partager sur Twitter

        Noob cherchant à comprendre une erreur

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown