Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
1

Итераторы, как аргументы функции в async

27.11.2016, 21:25. Показов 787. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как передать итераторы, которые выступают в качестве аргументов, передаваемой функции в async?
Я так понимаю, передача в async сравнима с bind, так можно ли забиндить итераторы?
Что-то типо такого
C++
1
2
3
4
5
6
7
8
9
template <typename Input>
void print(Input beg, Input end){
    copy(beg,end,ostream_iterator<int>(cout," "));
}
int main(){
    vector<int>v={1,2,3,4,5};
    future<void>f=async(print, v.begin(),v.end());
    f.get();
}
Добавлено через 57 минут
Может так?
C++
1
2
3
4
5
6
7
8
9
10
template<typename input>
void f(input beg,input end) {
    copy(beg,end,ostream_iterator<int>(cout," "));
}
int main() {
    vector<int>v= {1,2,3,4,5};
    auto fu=bind<void>(f<vector<int>::iterator>,_1,_2);
    future<void> f=async(launch::async,bind(fu,v.begin(),v.end()));
    f.get();
}
Добавлено через 2 минуты
Даже 1 bind лишний
C++
1
2
3
4
5
6
7
8
9
void f(input beg,input end) {
    copy(beg,end,ostream_iterator<int>(cout," "));
}
int main() {
    vector<int>v= {1,2,3,4,5};
    auto fu=bind<void>(f<vector<int>::iterator>,_1,_2);
    future<void> f=async(launch::async,fu,v.begin(),v.end());
    f.get();
}
А есть ли другие способы?

Добавлено через 40 минут
Всё намного проще, чем кажется
C++
1
2
3
4
5
6
7
8
9
template <typename input>
void ff(input beg,input end) {
    copy(beg,end,ostream_iterator<int>(cout," "));
}
int main() {
    vector<int>v= {1,2,3,4,5};
    future<void> f=async(launch::async,ff<vector<int>::iterator>,v.begin(),v.end());
    f.get();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2016, 21:25
Ответы с готовыми решениями:

Итераторы, как аргументы функции
Код: #include &lt;iostream&gt; using std::cout; using std::cin; using std::endl; #include...

Как правильно определить тип функции и ее аргументы?
По заданию нужно вынести каждое действие в функции, у меня с ними не лады (:wall:) Вот приведу...

Как на это код добавить аргументы функции main?
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;iomanip&gt; #include &lt;cstdio&gt; #include...

Как задать параметры запуска (аргументы командной строки) функции main?
Как их задать в процессе запуска? т.е. пользователь запускает приложение и указывает параметры...

0
27.11.2016, 21:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2016, 21:25
Помогаю со студенческими работами здесь

C++: итераторы по умолчанию, пустые итераторы, end()
Всем добра! Вопрос на тему итераторов в плюсах: 1. какие значения имеют итераторы без...

Итераторы в шаблонной функции
Здравствуйте, пишу программу, в ознакомительных целях с шаблонными функциями. У меня есть функция,...

Аргументы функции: что значит "большие" и "небольшие" аргументы?
Здравствуйте! Всем доброго дня! Растолкуйте пожалуйста! Что значит большие и небольшие?

For_each и аргументы callback-функции; Как передать callback'у больше одного аргумента
Изучаю контейнеры и алгоритмы stl по Майерсу . С непривычки слегка охренел и запутался в них . В...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru