Maison >développement back-end >C++ >Quelles sont les meilleures façons de résumer les éléments d'un std::vector en C ?

Quelles sont les meilleures façons de résumer les éléments d'un std::vector en C ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-26 11:16:10626parcourir

What are the Best Ways to Sum the Elements of a std::vector in C  ?

Méthodes alternatives pour additionner les éléments d'un std :: vector

Trouver la somme de tous les éléments d'un std :: vector est une tâche courante avec plusieurs approches efficaces. Voici plusieurs options :

Techniques classiques C 03

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.

Approches C modernes (C 11)

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;

C 17 Améliorations

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn