Gibt es einen STL/Boost-Algorithmus, der prüft, ob alle Elemente zwischen zwei Iteratoren mit einem bestimmten Wert übereinstimmen? Oder alternativ, dass ein Prädikat für alle von ihnen true
zurückgibt?Gibt es einen STL/Boost-Algorithmus, um alle Elemente in einem Container auf einen Wert zu überprüfen?
das heißt so etwas wie
template<class InputIterator, class T>
InputIterator all_match (InputIterator first, InputIterator last, const T& value)
{
bool allMatch = true;
while(allMatch && first!=last)
allMatch = (value == *first++);
return allMatch;
}
Oder
template <class InputIterator, class Predicate>
bool all_true (InputIterator first, InputIterator last, Predicate pred)
{
bool allTrue = true;
while (allTrue && first != last)
allTrue = pred(*first++);
return allTrue;
}
Das wird gut tun. Vielen Dank. – GrahamS
eigentlich glaube ich nicht, dass 'not_equal_to()' Syntax ist ganz richtig. Ich könnte etwas falsch machen, aber ich musste 'bind2nd' damit verwenden:' std :: find_if (seq.begin(), seq.end(), std :: bind2nd (std :: not_equal_to() , val)) ' –
GrahamS