2016-04-20 4 views
2

Ich bin auf der Suche nach einer Funktion, die alle positiven Zahlen in einer vector zählen kann! Und ich brauche deine Hilfe. Die einzige Funktion, die ich bisher gefunden habe, ist std::count() von algorithm, aber es durchsucht den Container nur nach Elementen, die einem bestimmten Wert entsprechen. Vielleicht gibt es eine Möglichkeit, diese Funktion nach Übereinstimmungen in einem bestimmten Bereich suchen zu lassen (dieser Bereich wird in meinem Fall von 1 bis + unendlich sein)? Vielen Dank.Gibt es eine Funktion, um alle positiven Zahlen in einem Vektor zu zählen?

+3

Sie sind ganz in der Nähe Ihrer Lösung: Es gibt 'std :: count_if' – milleniumbug

+3

' std :: count_if (v.begin(), v.end (), std :: bind2nd (std :: größer (), 0)) ' –

+0

@milleniumbug, vielen Dank! Ich glaube, ich habe es irgendwie ausgelassen ... –

Antwort

10

Die nächste wäre std::count_if.

Sie können es so verwenden:

#include <algorithm> 
#include <vector> 

int count_bigger(const std::vector<int>& elems) { 
    return std::count_if(elems.begin(), elems.end(), [](int c){return c > 0;}); 
} 
Verwandte Themen