Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
fasked
Эксперт С++
4951 / 2531 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
#1

bind1st и bind2nd - C++

18.05.2010, 12:21. Просмотров 2018. Ответов 3

Проблемы с std::bind1st и std::bind2nd
Пишу такой код:
C++
1
2
3
4
5
6
7
8
9
void foo(int &t, int &t)
{
}
 
int main()
{
  int a[10];
  std::for_each(a, a + 10, std::bind1st(foo, 1));
}
А в ответ получаю гору STL ошибок
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2010, 12:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос bind1st и bind2nd (C++):

Правильное использование bind1st (bind) - C++
Есть пользовательский класс Money. Есть следующие определения typedef Money mon; typedef vector<mon> monVec; typedef monVec::iterator...

std::bind1st: is not a class, struct, or union type - C++
Добрый день, пытаюсь найти элемент в списки указателей на объекты классачерез предикат. Вот упрощенный пример: #include <algorithm> ...

Непонятки с bind2nd - C++
Привет. Вот к примеру есть такой код: #include <algorithm> #include <functional> #include <iostream> #include <array> ...

Использование bind2nd - C++
Доброй ночи! Помогите, пожалуйста, разобраться с биндерами. #include <iostream> #include <algorithm> #include <iterator> #include...

Отличие bind2nd от binder2nd - C++
Привет. Чем отличается bind2nd (1st) от binder2nd (1st)? Первый - функция, а второй - функтор? Спасибо.

Ошибка номер c2535 в адапторе bind2nd - C++
Доброго времени суток начал изучать STL и пытаюсь соответственно активно использовать в нижеприведенной программе компилятор выдал ошибку...

3
ISergey
Maniac
Эксперт С++
1395 / 906 / 56
Регистрация: 02.01.2009
Сообщений: 2,706
Записей в блоге: 1
18.05.2010, 12:41 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <algorithm>
#include <functional>
 
using namespace std;
 
 
class func_: public binary_function<int, int, void>{
public:
    void operator () (int a, int b) const { if(a > b) cout << a << " "; }
};
int main(){
 
    int arr[10] = {-1, -2, -3, -4, -5, 5, 4, 3, 2, 1};
 
    for_each(arr, arr + 10, bind2nd(func_(), 0));
 
    return 0;
}
http://codepad.org/70qFsChI
2
fasked
Эксперт С++
4951 / 2531 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
18.05.2010, 12:45  [ТС] #3
ISergey, Спасибо, получается, что обязательно должен быть класс с перегруженным operator() ?
0
SONNY
8 / 8 / 0
Регистрация: 30.05.2009
Сообщений: 47
18.05.2010, 12:49 #4
адаптеры требуют для работы определения типов

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template<typename _Rs, typename _Arg1, typename _Arg2> class Foo : std::binary_function<_Arg1, _Arg2, _Rs>
{
public:
    _Rs operator () ( _Arg1, _Arg2 )
    {
    }
};
 
 
int _tmain( int argc, _TCHAR* argv[] )
{
    std::for_each( a, a + 5, std::bind2nd(Foo, 10) );
}
1
18.05.2010, 12:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2010, 12:49
Привет! Вот еще темы с ответами:

Забиндить второй аргумент функции, используя std::bind2nd - C++
Как забиндить свою функцию с двумя аргументами в функцию с одним аргументом? Вот пример в котором нужно сделать для b: #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.