std::copy_if<>

Teil 2 von 5 der Serie STL Rezepte Sammlung

Extrahiere aus einer Liste (zum Beispiel die Liste aller Kunden) alle Objekte mit einer bestimmten Eigenschaft, zum Beispiel alle Personen die in München geboren sind.

struct MatchPerson : public std::binary_function <Person*, std::string, bool>
{
    bool operator()(const Person* a, const std::string& b) const
    {
        return (a->geburtsOrt == b) ;
    }
};

main()
{
    Domain domain();
    std::vector<Person*> personen; 
    domain.loadpersonen(personen);
    std::vector<Person*> muenchner_kunden;
    std::copy_if(
        personen.begin(),
        personen.end(),
        muenchner_kunden.begin(),
        std::bind2nd(MatchPerson(), "Muenchen"));
}

Series Navigation<< std::weak_ptr<>std::mutex >>