Freigeben über


count_if

 

Veröffentlicht: Juli 2016

Gibt die Anzahl der Elemente in einem Bereich, dessen Werte eine angegebene Bedingung erfüllen.

Syntax

template<class InputIterator, class Predicate>
   typename iterator_traits<InputIterator>::difference_type count_if(
      InputIterator 
_First
, 
      InputIterator 
_Last
,
      Predicate 
_Pred
   );

Parameter

  • _First
    Ein Eingabeiterator, der die Position des ersten Elements im zu durchsuchenden Bereich adressiert.

  • _Last
    Ein Eingabeiterator, der die Position hinter dem letzten Element im zu durchsuchenden Bereich adressiert.

  • _Pred
    Eine benutzerdefinierte Prädikatfunktion-Objekt, das die Bedingung definiert, die erfüllt werden, wenn ein Element, das gezählt werden. Ein Prädikat akzeptiert ein einziges Argument und gibt true oder false.

Rückgabewert

Die Anzahl der Elemente, die vom Prädikat angegebene Bedingung erfüllen.

Hinweise

Diese Vorlagenfunktion ist eine Generalisierung des Algorithmus Anzahl, ersetzt das Prädikat "entspricht einen bestimmten Wert" durch jedes Prädikat.

Beispiel

// alg_count_if.cpp
// compile with: /EHsc
#include <vector>
#include <algorithm>
#include <iostream>

bool greater10(int value)
{
    return value >10;
}

int main()
{
    using namespace std;
    vector<int> v1;
    vector<int>::iterator Iter;

    v1.push_back(10);
    v1.push_back(20);
    v1.push_back(10);
    v1.push_back(40);
    v1.push_back(10);

    cout << "v1 = ( ";
    for (Iter = v1.begin(); Iter != v1.end(); Iter++)
        cout << *Iter << " ";
    cout << ")" << endl;

    vector<int>::iterator::difference_type result1;
    result1 = count_if(v1.begin(), v1.end(), greater10);
    cout << "The number of elements in v1 greater than 10 is: "
         << result1 << "." << endl;
}
V1 = (10 20 10 40 10) die Anzahl von Elementen in v1, die größer als 10 ist: 2.

Anforderungen

Header: <algorithm>

Namespace: std

Siehe auch

count_if (STL-Beispiele)
Standard Template Library