Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Napraviti konkurentni program koji pronalazi element najbliži 0 iz
- zadatog niza brojeva. Posao podeliti u 3 toka izvršavanja.
- a) Za stvaranje niti koristiti klasu thread.
- */
- #include <iostream>
- #include <thread>
- #include <vector>
- #include <cmath>
- #include <algorithm>
- using namespace std;
- typedef vector<double> :: const_iterator it;
- void f(it begin, it end, double* min){
- *min = *begin;
- for(; begin!=end; begin++){
- if(abs(*begin)<abs(*min))
- *min = *begin;
- }
- }
- int main(){
- vector <double> a={1, 4, 5, 6, -0.05, 2, 3, 0.1, 7};
- size_t n=3;
- double rez;
- thread niti[n];
- it begin_a = a.begin();
- size_t length = a.size();
- vector<double> minimumi(n);
- for(size_t i=0; i<a.size(); i++){
- niti[i] = thread(f, begin_a + i*length/n ,begin_a + n + n*i, &minimumi[i]);
- }
- for( size_t i=0; i<n;i++){
- niti[i].join();
- }
- for(size_t i=0; i<n;i++){
- cout<<minimumi[i]<<endl;
- }
- //cout << "Element najblizi nuli je" <<abs(*min_element(minimumi.begin(), minimumi.end()))<<endl; --STL #include <algorithm>
- return 0;
- }
Add Comment
Please, Sign In to add comment