Trouver le Mode de Vecteur d'Entiers en C++

Donc je suis en train de faire un programme de base pour apprendre les bases du C++, je suis de la génération de 100 nombres aléatoires de 0 à 100 et de les stocker dans un vecteur, je suis ensuite l'affichage de la somme, la moyenne, la médiane, le mode, haut et bas du vecteur. J'ai tout fait sauf la mode qui est l'endroit où je suis coincé. Voici le code que j'ai jusqu'ici.

int modeFunction()
     {
         numMode = 0;
         count = 0;
         for (int n = 0; n < 100; n++)
         {
             for (int y = 0; y < 100; y++)
             {
                 if (numVector.at(y) == numVector.at(n))
                {
                    numMode = numVector.at(y);
                    count++;
                }
             }

         }
         return numMode;
     }

Après que je me retrouve bloqué parce que dans mon esprit qu'il convient de travail, mais il ne le fait pas. Il vient de sortir met le dernier numéro, généralement 100. Toute aide serait grandement appréciée.

si myVector est un std::vector<int> (on dirait que c'atleast), vous pouvez indexer un tableau: myVector[y] et myVector[n] donnera le même que le myVector.at version, mais c'est plus agréable à mon humble avis. 🙂
la différence étant que at a défini le comportement lorsque l'index est hors de portée. Sans doute operator[] est un micro-optimisation, même si comme vous le dites c'est aussi un peu un style de différence.
Ah, merci pour cette friandise. 🙂 Ne vous embêtez pas avec at encore, mais un tableau normal aussi a un comportement indéterminé pour hors de portée d'accès, mais il est certainement agréable d'avoir défini comportements quand vous en avez besoin. 🙂
pour être honnête, je n'ai jamais utiliser at moi-même. Je me demande parfois si je ne devrais pas, mais dans la pratique je n'ai jamais écrire de code que je veux lancer une exception lorsque l'index est en dehors des limites, donc il ne sert que de débogage aider, il "devrait" ne jamais se produire. En dépit de l'appeler un micro-optimisation, c'est un montant raisonnable de code redondant, donc au final si je veux une vérification de limites je viens de passer à Python 😉

OriginalL'auteur Cistoran | 2011-03-25