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

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

DDD
Freigeben: 2024-12-03 16:45:13
Original
592 Leute haben es durchsucht

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

Effiziente Methoden zum Summieren von Elementen in einem std::vector

In Szenarien, in denen Sie die kumulative Summe von Elementen innerhalb eines std ermitteln müssen ::vector gibt es mehrere effiziente Ansätze.

C 03 Lösungen:

  1. Klassische For-Schleife:

    int sum_of_elems = 0;
    for (std::vector<int>::iterator it = vector.begin(); it != vector.end(); ++it)
        sum_of_elems += *it;
    Nach dem Login kopieren
  2. Standardalgorithmus:

    #include <numeric>
    
    sum_of_elems = std::accumulate(vector.begin(), vector.end(), 0);
    Nach dem Login kopieren

    Hinweis: Das Finale Der Typ des Arguments bestimmt den Anfangswert und den Ergebnistyp. Verwenden Sie für Gleitkomma-Eingaben 0,0 anstelle von 0.

C 11 und höher Erweiterungen:

  1. Automatischer Vektortyp Handhabung:

    #include <numeric>
    
    sum_of_elems = std::accumulate(vector.begin(), vector.end(),
                                   decltype(vector)::value_type(0));
    Nach dem Login kopieren
  2. std::for_each Nutzung:

    std::for_each(vector.begin(), vector.end(), [&](int n) {
        sum_of_elems += n;
    });
    Nach dem Login kopieren
  3. Bereichsbasiert für Schleife:

    for (auto& n : vector)
        sum_of_elems += n;
    Nach dem Login kopieren

C 17 und spätere Ergänzungen:

  1. std:: Mit automatischem Ergebnistyp reduzieren:

    #include <numeric>
    
    auto result = std::reduce(v.begin(), v.end());
    Nach dem Login kopieren

    Die Überladungen dieser Funktion ermöglichen die Parallelverarbeitung für umfangreiche Sammlungen.

Das obige ist der detaillierte Inhalt vonWas sind die effizienten 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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage