Записки программиста
Авторский блог Михаила Лукина

bind1st

template <class Operation, class T> binder1st bind1st (const Operation& op, const T& x);

Создает из бинарнго функционального объекта унарный с зафиксированным первым параметром.


 

Замечание Для того, чтобы зафиксировать первый параметр, см. bind2nd.

 

Параметры

op
Бинарный функциоральный объект
x
Значение для первого параметра

 

Возвращаемое значение

Унарный функциональный объект, который эквивалентен op с первым параметром равным x.

 

Пример.

#include <functional>
#include <algorithm>
#include <iostream>

using namespace std;

int sum(int a, int b)
{
    return a + b;
}

void print_int(int n) 
{
    cout << n << " ";
}


int main (int argc, char **argv)
{
    int source[5] = {1, 2, 3, 4, 5};
    int res[5];
    transform(source, source+5, res, bind1st(ptr_fun(sum), 8));
    cout << "source: ";
    for_each(source, source + 5, print_int);
    cout << "\nres: ";
    for_each(res, res + 5, print_int);
    return 0;
}
 


Результат:

source: 1 2 3 4 5
res: 9 10 11 12 13

 

 


© 2010-2014. Записки программиста. Все права защищены.
Яндекс.Метрика
ВебСтолица.РУ: создай свой бесплатный сайт!  | Пожаловаться  
Движок: Amiro CMS