Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <list>
- #include <iterator>
- #include <algorithm>
- using namespace std;
- // Define functions even, odd, lt10, gt10, alwaystrue
- // All these functions returns bool and have one int parameter
- // Meanings are obvious
- bool even(int n) {return n%2==0;}
- bool odd(int n) {return n%2!=0;}
- bool lt10(int n) {return n>10;}
- bool gt10(int n) {return n<10;}
- bool alwaystrue(int n) {return true;}
- void main()
- {
- int tab[] = { 2, 5, 8, 3, 12, 15, 17, 23, 3, 26, 30, 5, 18, 22, 1 };
- for (int i:tab)
- cout << i << "," ;
- cout<<endl<<endl;
- vector<int> v, v_even, v_odd;
- back_insert_iterator<vector<int>> iitv(v);
- //auto iitv = back_inserter(v);
- // Define back inserters for vectors v_even and v_odd
- auto iitve = back_inserter(v_even);
- back_insert_iterator<vector<int>> iitvo(v_odd);
- copy(tab, tab+sizeof(tab)/sizeof(int), iitv);
- for (int i:v)
- cout << i << "," ;
- cout<<endl<<endl;
- // Fill vector v_even with proper elements of vevtor v,
- // use copy_if algorithm and even function
- // List v_even elements to screen
- copy_if(v.begin(), v.back(), iitve, even);
- for(int i:v_even)
- cout<< i <<",";
- // Fill vector v_odd with proper elements of vevtor v,
- // use copy_if algorithm and odd function
- // List v_odd elements to screen
- copy_if(v.begin(), v.back(), iitvo, odd);
- for(int i: v_odd)
- cout<<i<<",";
- cout << count_if(v.begin(),v.end(),lt10) << endl << endl ;
- cout << count_if(v.begin(),v.end(),gt10) << endl << endl ;
- cout << count_if(v.begin(),v.end(),alwaystrue) << endl << endl ;
- // Find max and min element of v vector
- // use proper algorithms
- cout<<"Max element of vector v: "<<*max_element(v.begin(), v.back() )<<endl;
- cout<<"Min element of vector v: "<<*min_element(v.begin(), v.back() )<<endl;
- vector<int> v1(v);
- vector<int> v2(v);
- /* auto it=v1.begin();
- while ( it!=v1.end() )
- if ( even(*it) )
- it=v1.erase(it);
- else
- ++it;
- for (int i:v1)
- cout << i << "," ;
- cout<<endl<<endl;
- auto itr = remove_if(v2.begin(),v2.end(),even);
- for (int i:v2)
- cout << i << "," ;
- cout<<endl<<endl;
- v2.erase(itr,v2.end());
- for (int i:v2)
- cout << i << "," ;
- cout<<endl<<endl;*/
- // Sieve of Eratosthenes
- // Find all prime numbers less than 1000
- list<int> numbers;
- list<int> prime;
- cout<<"Prime numbers less than 1000"<<endl;
- for ( list<int>::iterator it=prime.begin() ; it!=prime.end() ; ++it )
- cout<<" "<<(*it);
- cout<<endl<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement