n = count_if(p, p + strlen(p),
bind2nd(greater_equal<char>(), 'k'));
Шаблон bind2nd называется привязкой (являющейся разновидностью адаптера функции). Поскольку два выражения
ch >= 'к' и !(ch < 'к')
эквивалентны, нас может заинтересовать, допустимо ли использовать некий аналог второго выражения в качестве третьего аргумента функции count_if Это действительно можно сделать, если применить другой тип адаптера функции, называемый отрицателем:
n = count_if(p, р + strlen(p),
notl(bind2nd(less<char>(), 'k')));
Мы обсудим адаптеры функций (и прочие адаптеры) более подробно в главе 6.
<< назад вперед >>