Détermination de la somme des éléments dans un vecteur C
En C, trouver la somme des éléments dans un std::vector nécessite une boucle ou un algorithme standard pour parcourir et accumuler les valeurs. Le choix de la méthode dépend de la version de C utilisée, et chaque approche offre ses propres avantages.
C 03
Classique boucle for : Utiliser une boucle for traditionnelle pour parcourir les éléments et incrémenter une somme courante variable.
int sum_of_elems = 0; for (auto it = vector.begin(); it != vector.end(); ++it) sum_of_elems += *it;
algorithme d'accumulation : Cet algorithme fourni par la variable
#include <numeric> int sum_of_elems = std::accumulate(vector.begin(), vector.end(), 0);
C 11 et supérieur
std::accumulate avec saisie automatique : Le même algorithme std::accumulate peut être utilisé avec un légère modification pour déduire automatiquement le type de retour en fonction du type d'élément du vecteur.
#include <numeric> decltype(vector)::value_type sum_of_elems = std::accumulate(vector.begin(), vector.end(), decltype(vector)::value_type(0));
std::for_each loop: Cette syntaxe de boucle applique une fonction lambda à chaque élément du vecteur, mettant à jour une variable de somme dans son scope.
std::for_each(vector.begin(), vector.end(), [&](int n) { sum_of_elems += n; });
Boucle for basée sur une plage : Ce sucre syntaxique pour les boucles parcourt les éléments directement sans objet itérateur séparé.
for (auto& n : vector) sum_of_elems += n;
C 17 et Plus tard
algorithme std::reduce : Cet algorithme combine les éléments d'une collection en un seul résultat à l'aide d'un opérateur binaire spécifique, dans ce cas l'addition . Il déduit également automatiquement le type de résultat.
#include <numeric> auto result = std::reduce(v.begin(), v.end());
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!