Trouver la somme de tous les éléments d'un std :: vector est une tâche courante avec plusieurs approches efficaces. Voici plusieurs options :
Boucle For :
int sum_of_elems = 0; for (std::vector<int>::iterator it = vector.begin(); it != vector.end(); ++it) sum_of_elems += *it;
Algorithme standard :
#include <numeric> sum_of_elems = std::accumulate(vector.begin(), vector.end(), 0);
Remarque : Sachez que le type de le dernier argument détermine le type de résultat.
Type automatique Gestion :
#include <numeric> sum_of_elems = std::accumulate(vector.begin(), vector.end(), decltype(vector)::value_type(0));
std::for_each:
std::for_each(vector.begin(), vector.end(), [&](int n) { sum_of_elems += n; });
Boucle For basée sur une plage :
for (auto& n : vector) sum_of_elems += n;
std::reduce:
#include <numeric> auto result = std::reduce(v.begin(), v.end());
std::reduce gère l'inférence de type de résultat et offre des capacités d'exécution parallèle pour les grandes collections.
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!