2017-01-10 4 views
0

Ich habe dieses Problem jetzt für einen Tag untersucht, aber ich kann nicht die Antwort finden. Ich muss alle Elemente eines Vektors verwenden und hinzufügen.Ist es möglich, alle Zahlen eines Vektors mit <functional> und <algorithm> hinzuzufügen?

Bisher habe ich gefunden http://www.cplusplus.com/reference/functional/plus/ Ist es möglich, anstatt 2 Vektor hinzufügen seine Elemente zusammen? Ich kann nichts anderes finden, was mir nahe kommt, was ich tun möchte.

Übrigens bin ich neu in der Sprache. Ich brauche den Code nicht, sondern nur einen Hinweis in die richtige Richtung.

+2

[ 'std :: accumulate'] (http://en.cppreference.com/w/cpp/algorithm/accumulate) – jaggedSpire

+0

Aber das ist nicht Teil von oder ich das awnser zu gründen. –

+0

aahh oke, weil es nicht zwischen diesen war http://www.cplusplus.com/reference/algorithm/. –

Antwort

3

Der Algorithmus zum Vorbereiten dieser Operation befindet sich im numerischen Header, nicht im Algorithmusheader. Siehe std::accumulate.

#include <iostream> 
#include <numeric> 
#include <vector> 

int main() 
{ 
    std::vector<int> data = {1, 2, 10}; 
    const auto result = std::accumulate(data.begin(), data.end(), 0); 
    std::cout << result << std::endl; 
    return 0; 
} 

Wenn Sie sich mit funktionalen und Algorithmus bestehen könnten Sie std::for_each und std::function verwenden.

#include <algorithm> 
#include <iostream> 
#include <functional> 
#include <vector> 

int main() 
{ 
    std::vector<int> data = {1, 2, 10}; 
    int result = 0; 

    std::function<void(int)> sum = [&result](int value){result += value;}; 
    std::for_each(data.begin(), data.end(), sum); 

    std::cout << result << std::endl; 
    return 0; 
} 
Verwandte Themen