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

потоки, мьютекс и семафор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка в работе программы http://www.cyberforum.ru/cpp-beginners/thread1039109.html
При выполнении программы: int main() { setlocale (LC_ALL,".1251"); FILE *fin = fopen("input.txt", "r"); FILE *fout = fopen("output.txt", "w"); const int max=150; char * str=new...
C++ сортировка одномерного массива Удалить из массива первую двойку смежных чисел, произведение которых равно К-му числу, К задается. Например: массив: 4 2 5 2 4 8 4, число к=5( получаем элемент x ) вывод: 5 2 4 8 4. Что у меня... http://www.cyberforum.ru/cpp-beginners/thread1039106.html
C++ Статический массив - динамическое выделение памяти!?
int n; cin >> n; int wtf; почему данная конструкция правильно работает? Это же статический массив?! или при таком использовании он является динамическим??:)
C++ Некорректно работает функция рандомайз при заполнении массива
Задача - внести случайные числа в динамический массив. Проблема - почему-то при первом запуске программы в первый элемент массива вносится огромное число (хотя диапазон чисел в random (100)), при...
C++ Исследование функций и построение графиков http://www.cyberforum.ru/cpp-beginners/thread1039077.html
f(x)= -x^3+9x^2-24x+10
C++ Непонятны функции Ребят, объясните, пожалуйста, (если не трудно закомментить каждую строчку), что делает каждая функция в коде? С функциями профан.. #include <iostream> #include <fstream> using namespace std; ... подробнее

Показать сообщение отдельно
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
12.12.2013, 22:39

Не по теме:

И что ваш код имеет общего с параллельным выполнением?


Параллельно тут можно разве что файлы читать для подготовки данных. А все пересекающиеся слова можно найти с помощью set_intersection. Что то вроде такого кода:
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
#include <iostream>
#include <iterator>
#include <fstream>
#include <string>
#include <set>
#include <future>
#include <algorithm>
#include <windows.h>
 
std::set<std::string> get_all_words(std::string const& file)
{
   using input = std::istream_iterator<std::string>;
   std::ifstream ifs(file.c_str());
   if (!ifs.is_open()) throw std::logic_error(std::string("can't open file ") + file + ".\n");
   return std::set<std::string> {input(ifs), input()};
}
 
int main()
{
   SetConsoleCP (1251); SetConsoleOutputCP (1251);
 
   std::string file1 = "D:/where.txt", file2 = "D:/what.txt";
 
   try {
      auto f1 = std::async(get_all_words, file1);
      auto f2 = std::async(get_all_words, file2);
 
      std::set<std::string> words {f1.get()}, finding_words {f2.get()};
 
      std::set_intersection(words.begin(), words.end(),
                            finding_words.begin(), finding_words.end(),
                            std::ostream_iterator<std::string>(std::cout, "\n"));
   }
   catch (std::logic_error& e) {std::cerr << e.what();}
   catch (...) {std::cerr << "some uknown error.\n";}
 
   std::cout << "\n\nDone." << std::endl;
   return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru