Advertisement
nex036ara

korespodentni_elementi_niti

Mar 28th, 2012
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.79 KB | None | 0 0
  1. #include<iostream>
  2. #include<thread>
  3. #include <cmath>
  4. #include <vector>
  5. #include <future>
  6. using namespace std;
  7.  
  8. typedef vector<double>::iterator c;
  9.  
  10. double f(c begin,c end,double *min){
  11.     *min = *begin;
  12.         for(; begin!=end; ++begin) {
  13.             if(abs(*begin)< *min) *min= *begin;
  14.             } return *min;
  15. }
  16.  
  17. int main() {
  18.    int n =3;
  19.    vector<double>a = {2, 7, 5, 3, 0.8, 0.89, 1.2, 1, 4};
  20.    double minimumi[n];
  21.    thread niti[n];
  22.  
  23.    for (int i = 0; i < n; ++i){
  24.         niti[i] = thread(f, a.begin()+ i* a.size()/3, a.begin()+ (i+1)*a.size()/3 ,&minimumi[i] );
  25.  
  26.    }
  27.  
  28.    for (int i = 0; i < n; ++i)
  29.        niti[i].join();
  30.  
  31. double min;
  32.         min= minimumi[0];
  33.  
  34.     for (int i = 0; i < n; ++i){
  35.        if(minimumi[i]<min)min=minimumi[i];
  36. }
  37. cout<<min<<endl;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement