Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind die besten Möglichkeiten, die Elemente eines std::vector in C zu summieren?

Was sind die besten Möglichkeiten, die Elemente eines std::vector in C zu summieren?

Susan Sarandon
Susan SarandonOriginal
2024-11-26 11:16:10559Durchsuche

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

Alternative Methoden zum Summieren von Elementen eines std::vector

Das Ermitteln der Summe aller Elemente in einem std::vector ist eine häufige Aufgabe mit mehreren effizienten Ansätzen. Hier sind mehrere Optionen:

Klassische C 03-Techniken

For-Schleife:

int sum_of_elems = 0;
for (std::vector<int>::iterator it = vector.begin(); it != vector.end(); ++it)
     sum_of_elems += *it;

Standardalgorithmus:

#include <numeric>

sum_of_elems = std::accumulate(vector.begin(), vector.end(), 0);

Hinweis: Beachten Sie, dass der Typ des letzten Argument bestimmt den Ergebnistyp.

Moderne C-Ansätze (C 11)

Automatische Typbehandlung:

#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;
});

Bereichsbasiert für Schleife:

for (auto& n : vector)
     sum_of_elems += n;

C 17-Erweiterungen

std::reduce:

#include <numeric>

auto result = std::reduce(v.begin(), v.end());

std::reduce behandelt den Ergebnistyp Inferenz und bietet parallele Ausführungsfunktionen für große Sammlungen.

Das obige ist der detaillierte Inhalt vonWas sind die besten Möglichkeiten, die Elemente eines std::vector in C zu summieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn