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

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

Войти
Регистрация
Восстановить пароль
 
IcyWind
8 / 8 / 2
Регистрация: 19.09.2011
Сообщений: 269
#1

"общение" потоков - C++

12.03.2012, 16:27. Просмотров 323. Ответов 0
Метки нет (Все метки)

Здравствуйте.
Будут два потока. оба получают 2 иттератора (для конкретности vector<int>).
нужно:
один поток находит число, меньшее данного. Останавливается. Ждёт, пока остановится второй поток.
второй находит число, большее данного. Останавливается. Ждёт, пока остановится первый поток.
потом нужно вытащить иттераторы из каждого потока (из первого it1, втого it2) и сделать
swap(it1,it2)
Не знаю...как организовать это "общение". Знаю, что для ожидания можно использовать события...
а как вытащить иттераторы...может в потоке мейн делать свап через статические переменные?
тут примерный код потоков


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
41
42
43
44
45
#include "stdafx.h"
#include <Windows.h>
#include <vector>
#include <iostream>
using namespace std;
 
template <typename T>
struct para
{
    T begin,end;
           int chislo;
    para (T b, T e, int n)
    {
        begin = b;
        end = e;
                      chislo = n;
    }
};
 
typedef para<vector<int>::iterator> iterator_pair;
 
 
 
 
DWORD WINAPI func(PVOID param)
{
    iterator_pair* p = static_cast< iterator_pair * > (param);
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    vector<int> b;
    b.push_back(5);
    b.push_back(4);
    b.push_back(3);
    b.push_back(2);
 
    iterator_pair p(b.begin() , b.end(), 3);
     
 
    HANDLE potok = CreateThread(NULL, 0, func, &p, 0, NULL);
    WaitForSingleObject(potok, INFINITE);
    
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2012, 16:27     "общение" потоков
Посмотрите здесь:

Префикс "пере" заменить на "при" - C++
Если слово начинается с префикса &quot;пере&quot;, то заменить его на &quot;при&quot;. ПОМОГИТЕ С КОДОМ ПОЖАЛУЙСТА

Зачем нужны "set" и "get" в классах - C++
Зачем нужны &quot;set'еры&quot; и &quot;get'еры&quot;, если к public членам можно обращаться через указатель на класс. Видел ответы типо: &quot;Так принято&quot;, но...

Ошибка усечение из "double" к "float" - C++
Обясните пожалуйста что это за ошибка усечение из &quot;double&quot; к &quot;float&quot; никак не могу понять

"вставка" с "заменой" текста в файле. - C++
Здравствуйте. Решил для обретения бесценного опыта написать свой простенький парсер конфигов. Вообщем читает вполне себе читает...

В тексте заменить символы "fh" на символ "с" - C++
дан входной файл нужно обработать и записать в выходной вот задание В тексте заменить символы &quot;fh&quot; на символ &quot;с&quot;. В тексте несколько...

Различия между "пробелы" и "табуляция" - C++
Есть две статьи на хабре: в пользу табуляции и против я вообще не пойму сути проблемы: вот пишу я код, нужно на следущую строку -...

Ошибка: namespace "geoo" has no member "ch" - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace::std; namespace geoo { double PI = 3.14; double circumf(double...

Заменить все вхождения символа "a" на "b" - C++
заменить все вхождения символа &quot;a&quot; на символ &quot;b&quot;. использовать string вот мой код (заменяет только первое вхождение) #include...

Заменить слово "кот" на "пес" - C++
Please HELP Заменить в заданной строке первое вхождение слова &quot;кот&quot; на &quot;пес&quot; &quot;Мои кот и пес живут...

Все буквы "е" в строке заменить на "и" - C++
Дано речення всі букви е замінити на букву и.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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