Форум программистов, компьютерный форум CyberForum.ru

For_each и аргументы callback-функции; Как передать callback'у больше одного аргумента - C++

Восстановить пароль Регистрация
 
root4me
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 11
07.08.2014, 19:14     For_each и аргументы callback-функции; Как передать callback'у больше одного аргумента #1
Изучаю контейнеры и алгоритмы stl по Майерсу . С непривычки слегка охренел и запутался в них .
В общем есть у меня простой вызов алгоритма вида
C++ (Qt)
1
for_each(sregex_iterator(html_data.begin(),html_data.end(),e),sregex_iterator(),&urls_callback);
Не могу понять , как передать callback'у больше одного аргумента ? То есть если я хочу , допустим , сохранять в vector результаты работы алгоритма . Делать это нужно видимо в callback'e . Но как будто коллбек это унарная функция и как передать в коллбек адрес этого вектора я недогоняю
Вроде нашел , в частности , такой вариант .
Кликните здесь для просмотра всего текста
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
 
void print_i(int t, std::string separator)
{
   std::cout << t << separator;
}
 
int main()
{
   std::vector<int> elements;
   std::string delim = "\n";
   for_each(elements.begin(), 
            elements.end(),
            std::bind2nd(std::ptr_fun(&print_i),delim));
   return 0;
}

Кроме bind2nd мне эту архисложную проблему не решить никак ? Или я в принципе неправ и все работает совсем по-другому :/ ??
P.S. : Как понимаю , еще можно засунуть lambda . Но мне хочется понять именно передачу аргументов callback'у .
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2014, 19:14     For_each и аргументы callback-функции; Как передать callback'у больше одного аргумента
Посмотрите здесь:

Для чего нужны callback-функции C++
callback функции не для кнопок на экране, а для клавиш на клав. и мышке. Как? C++
Как передать функции массив в качестве аргумента? C++
C++ callback функции и функциональные объекты в качестве параметров
Методы класса как callback функции C++
Просмотр списка с вызовом callback функции C++
Как в качестве аргумента функции передать массив? C++
Нестатическая ссылка в статичной (BOOL CALLBACK EnumWindowsProc) функции внутри класса C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6420 / 3794 / 877
Регистрация: 30.01.2014
Сообщений: 6,584
07.08.2014, 19:24     For_each и аргументы callback-функции; Как передать callback'у больше одного аргумента #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от root4me Посмотреть сообщение
Кроме bind2nd мне эту архисложную проблему не решить никак ?
std::bind. Если есть лямбды, значит есть и std::bind. С ним гораздо проще обращаться, чем с bind2nd.
Yandex
Объявления
07.08.2014, 19:24     For_each и аргументы callback-функции; Как передать callback'у больше одного аргумента
Ответ Создать тему
Опции темы

Текущее время: 23:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru