Мне нужен алгоритм STL, который принимает предикат и коллекцию и возвращает true
если один и только один член коллекции удовлетворяет предикату, в противном случае возвращает false
.
Как бы я сделал это, используя алгоритмы STL?
Например, чтобы заменить следующий код алгоритмом STL, чтобы выразить то же самое возвращаемое значение.
int count = 0;
for( auto itr = c.begin(); itr != c.end(); ++itr ) {
if ( predicate( *itr ) ) {
if ( ++count > 1 ) {
break;
}
}
}
return 1 == count;