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

Многопоточность при сортировке массивов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Компиляторы. Какие преимущества между "кнопкой" и консолью? http://www.cyberforum.ru/cpp-beginners/thread1147477.html
В наличии два компилятора: от vs и intel с оболочками и консоли. Какие преимущества между "кнопкой" и консолью?
C++ Поможите реализовать эту программу поиск ближайших объектов class SPHERE_SET_TREE { public: class POSITION; class ITEM; class NODE; // Структура задает элемент множества сфер struct SPHERE { http://www.cyberforum.ru/cpp-beginners/thread1147473.html
Логическое выражение преобразовать в бинарное дерево C++
Преобразовать логическое выражение в бинарное дерево и вывести его.Выражение может содержать логическое и,или,отрицание(&,|,! соответственно).Например: 0|(0 | 1)&X(значение х пользователь вводит руками).
Выяснить, верно ли, что в последовательности имеются пять идущих подряд букв е C++
Условия: Даны натуральное число n, символы s1, …, sn. Выяснить, верно ли, что в последовательности s1, …, sn имеются пять идущих подряд букв е. Примерное решение(моё, может быть абсолютно неправильным т.к. делал по примеру): #include <conio.h> #include <clocale> #include <iostream> #include <cmath> using namespace std; int main () {setlocale(LC_ALL, "Russian_Russia.1251"); int n,i,k=0;
C++ Советы по программе, которая должна сделать перевод литров в четверти http://www.cyberforum.ru/cpp-beginners/thread1147446.html
Народ, нужны ваши советы, надо зделать програму на языке C++, перевод литров в чверти. В одной чверте 3.08 литров. Я пытался зделать сам и оно получилось (один раз, без понятия почему потом не хотело), но потом начелов выдавать такое, до этой програмы мне такого не писало: "suchera.exe": Загружено: "D:\suchera\Debug\suchera.exe", Символы загружены. "suchera.exe": Загружено:...
C++ По заданным значениям х и n найти элементы ряда и вывести на экран 2. По заданным значениям х и n найти элементы ряда и вывести на экран. x1/2, x2/3, x3/4, ...... , xn/(n+1). подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.04.2014, 01:16     Многопоточность при сортировке массивов
Цитата Сообщение от NEvOl Посмотреть сообщение
возможно что есть ограничения на число аргументов ?
Всё компилируется:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <thread>
using namespace std;
 
 
class A
{
    int a;
    A* pA;
 
public:
    A() : a(0), pA(NULL) {}
    A(int n) : a(n) {}
 
    void show()
    {
        cout << a << endl;
    }
 
    void operator()(A* p, int a, int b, int c, int d, int f, int g, int w, int q)
    {
        p ->f(a, b, c, d, f, g, w, q);
    }
 
    void f(int a, int b, int c, int d, int f, int g, int w, int q)
    {
        A obj;
 
        thread thr1(obj, this ->pA, a, b, c, d, f, g, w, q);
    }
};
 
 
int main()
{
    A a;
    a.f(1, 2, 3, 4, 5, 6, 7, 8);
 
    return 0;
}
Добавлено через 8 минут
И этот код (ваш, из 71 поста) компилируется (у меня) без ошибки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <thread>
using namespace std;
 
class A
{
    int a;
    A* pA;
public:
 
    A() : a(0), pA(NULL) {}
    A(int n) : a(n) {}
 
    void show(int a, int b, int c, int d, int e)
    {
        cout << a << endl;
 
         A obj;
 
        thread thr1(obj, this->pA, a, b, c, d, e);
    }
 
    void operator()(A* p, int a, int b, int c, int d, int e)
    {
           p->show(a, b, c, d, e);
    }
 
};
 
 
int main()
{
    A a;
    a.show(1, 2, 3, 4, 5);
 
    return 0;
}
Добавлено через 1 час 5 минут
Так можно метод класса передать в поток:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <thread>
using namespace std;
 
class A
{
    int a;
 
public:
    A* pA;
    A() : a(0), pA(NULL) {}
    A(int n) : a(n) {}
 
    void show(A* pA, int a, int b, int c, int d, int e)
    {
         thread thr1(&A::show, pA, pA, a, b, c, d, e); // второй параметр - указатель на объект класса, дальше - параметры метода
 
    }
};
 
 
int main()
{
    A a;
    a.show(a.pA, 1, 2, 3, 4, 5);
 
    return 0;
}
Добавлено через 2 минуты
Энтони Уильямс "Параллельное программирование на С++ в действии. 2012."
 
Текущее время: 04:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru