Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<thread>
- #include <cmath>
- #include <vector>
- #include <future>
- using namespace std;
- typedef vector<double>::iterator c;
- double f(c begin,c end,double *min){
- *min = *begin;
- for(; begin!=end; ++begin) {
- if(abs(*begin)< *min) *min= *begin;
- } return *min;
- }
- int main() {
- int n =3;
- vector<double>a = {2, 7, 5, 3, 0.8, 0.89, 1.2, 1, 4};
- double minimumi[n];
- thread niti[n];
- for (int i = 0; i < n; ++i){
- niti[i] = thread(f, a.begin()+ i* a.size()/3, a.begin()+ (i+1)*a.size()/3 ,&minimumi[i] );
- }
- for (int i = 0; i < n; ++i)
- niti[i].join();
- double min;
- min= minimumi[0];
- for (int i = 0; i < n; ++i){
- if(minimumi[i]<min)min=minimumi[i];
- }
- cout<<min<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement