еделен стандартный объект бина
Автор admin
Понедельник, 25 мая 2009 11:32
еделен стандартный объект бинарной функции equal_to и адаптер notl(), который получает объект унарной функции и возвращает его логическое отрицание. Следующая программа делает то, что требуется: //: C06:CountNotEqual.срр // Подсчет элементов, не равных 20 #include #include #include functional> #include using namespace std: int mainO { int a[] = { 10. 20. 30 }: const size_t SIZE = sizeof a / sizeof a[0]: cout « count_if(a. a + SIZE. notl(bindlst(equal_to(). 20))):// 2 } ///:- Алгоритм count_if() вызывает предикат, переданный в третьем аргументе (назовем его п), для каждого элемента своего интервала. Каждый раз, когда предикат возвращает true, алгоритм увеличивает свой внутренний счетчик. По аналогии с предыдущим примером обозначим текущий элемент символом е и рассмотрим команду if (п(е)) В реализации count_if эта команда интерпретируется так: if(!(bindlst(equal_to. 20)(е)) В конечном счете выражение принимает следующий вид, так как адаптер notl() возвращает логическое отрицание своего аргумента (результата вызова унарной функции): if(!equal_to(20. е)) Первы
Комментарии закрыты.
Последние комментарии