Шрифт:
Привязки (Binders)
Привязки bind1st и bind2nd берут функциональный объект f двух параметров и значение x и возвращают функциональный объект одного параметра, созданный из f с первым или вторым параметром соответственно, связанным с х.
Например, find_if(v.begin, v.end, bind2nd(greater‹int›, 5)) находит первое целое число в векторе v большее, чем 5; find_if(v.begin, v.end, bind1st(greater‹int›, 5)) находит первое целое число в v меньшее, чем 5.
Адаптеры указателей на функции (Adaptors for pointers to functions)
Чтобы позволить указателям на (унарные и бинарные) функции работать с функциональными адаптерами, библиотека обеспечивает следующее:
Например, replace_if(v.begin, v.end, not1(bind2nd(ptr_fun(strcmp), "C")), "C++") заменяет все "С" на "C++" в последовательности v.