Fonction pour le calcul de la moyenne d'un tableau à double[] à l'aide d'accumuler

Elle doit être la fonction la plus courante pour ce que tout le monde a un fragment de code quelque part, mais j'ai dépensé pas moins de 1,5 heure de recherche sur soi comme sur les autres C++ sites et n'ont pas trouvé une solution.

Je voudrais calculer la moyenne d'une double array[] à l'aide d'une fonction. Je voudrais passer le tableau à la fonction comme un référence. Il y a des millions d'exemples où la moyenne est calculée dans un main() de la boucle, mais ce que je cherche, c'est une fonction que je peux mettre dans un fichier externe et l'utiliser à tout moment plus tard.

Jusqu'à présent, voici ma dernière version, ce qui donne une erreur de compilation:

double mean_array( double array[] )
{
    int count = sizeof( array ) / sizeof( array[0] );
    double sum = accumulate( array, array + count, 0 );
    return ( double ) sum / count;
}

L'erreur de compilation est:

error C3861: 'accumuler': identificateur introuvable

Pouvez-vous me dire comment le réparer de cette fonction? Quel est le message d'erreur de compilation veux dire?

Si j'utilise std::accumulate (en plus de la déjà défini using namespace std), puis j'obtiens l'erreur suivante:

'accumulate' : is not a member of 'std'
'accumulate': identifier not found

Pourquoi est - 'accumuler' n'est pas membre de 'std'?

p.s.: Je sais que je peux faire " somme += tableau[i]' chemin et utilisez pas de s'accumuler, mais je voudrais comprendre ce qui se passe ici et comment puis-je faire mon exemple de travail.

Je ne suis pas sûr, mais je me demandais, avez-vous d'ajouter le nécessaire d'Inclure le fichier?
#include <numérique>
Attention: accumulate( array, array + count, 0.0 ); Note 0,0 - vous allez accumuler des entiers dans votre extrait de code.
Si je commence avec 0.0 ça fonctionne bien? Ai-je besoin de passer sur le compte ou je peut le calculer à partir de sizeof?
Vous ne pouvez pas utiliser sizeof(array) que la taille du tableau n'est pas connue. Voir @xanatos réponse ci-dessous pour une meilleure façon dans ce cas.

OriginalL'auteur hyperknot | 2011-10-26