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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с уравнениями: Как векторы структур разобрать в сами уравнения? http://www.cyberforum.ru/cpp-beginners/thread1239699.html
Есть кусок программы, которая принимает систему уравнений в виде: вектор уравнений, каждое уравнение – это вектор членов. Каждый член – это структура, членами которой являются имя переменной,...
C++ Box2d как установить в проект? как Подключить box2d к VS 2012, искал в гугле там говорится нужно исходники скаченные с офф сайта скомпилировать Cmake. ну я попробывал, вышло но lib файлов так и не появилось. Просветите что ввобще... http://www.cyberforum.ru/cpp-beginners/thread1239671.html
C++ Найти ошибку в регулярном выражении
Использую RegExpr модуль от Андрея Сорокина. Сделал небольшое изменение для удобства использования в билдере: const // EscChar = '\'; // 'Escape'-char ('\' in common r.e.) used for escaping...
Длина short[] - Почему размер массива внутри make отличается? C++
Доброе время суток, господа. #include <iostream> #include <vector> #include <algorithm> using namespace std; template <typename Container> Container make(const short s) {
C++ Вернуть полноценный класс с деструктором из функции http://www.cyberforum.ru/cpp-beginners/thread1239602.html
можно ли вернуть из функции класс? я имею ввиду полноценный класс с деструктором (например std:string) просто по идее вот например создал ты в функции экземпляр класса, return-ом вернул, а при выходе...
C++ Отправка символа " через сокеты Как через сокеты отправить символ " ? подробнее

Показать сообщение отдельно
root4me
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 11

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

07.08.2014, 19:14. Просмотров 756. Ответов 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'у .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.