#include<algorithm> #include<ctime> #include<vector> #include<iostream> using namespace std; const int SIZE=25; int main() { //create four vector for sorting algorithm vector<int> v1; vector<int> v2; vector<int> v3(SIZE); vector<int> v4(SIZE); vector<int> v5(SIZE); vector<int> v6(SIZE*2); //create an iterator for the vecotrs vector<int>::iterator iter; //seed the random number generator srand(time(0)); //fill the first vector with random numbers from 1 to 50; for(int i=0;i<SIZE;i++) { v1.push_back(rand()%50); v2.push_back(rand()%50+1); } //point the original vector cout<<" original vector :"<<endl; for(iter=v1.begin();iter!=v1.end();iter++) cout<<*iter<<" "; cout<<endl; //copy vectors; copy(v1.begin(),v1.end(),v3.begin()); copy(v1.begin(),v1.end(),v4.begin()); copy(v1.begin(),v1.end(),v5.begin()); //perform a stable_sort on the first vector stable_sort(v1.begin(),v1.end()); //print out the stable_sort vector cout<<" stable sort :"<<endl; for(iter=v1.begin();iter!=v1.end();iter++) cout<<*iter<<" "; //perform a nth_element on the third vector int n=15; iter=v3.begin()+n; nth_element(v3.begin(),iter,v3.end()); //print out the nth_element vector cout<<endl<<" nth_element on the "<<n <<"th element with nth value "<<v3[n-1] <<":"<<endl; for(iter=v3.begin();iter!=v3.end();iter++) cout<<*iter<<" "; //perform a stable_partition sort on the fourth vector //iterator pointer to the first element that does not //meet the criterion -odd numbers //bind2nd is an C++ library function that create a unary predicate //from two arguments iter=stable_partition(v4.begin(),v4.end(),bind2nd(modulus<int>(),2)) ; //print out stable_partition vector cout<<endl<<" stable partition sort for odd and even numbers " <<" the partition element is " <<*iter<<" :"<<endl; for(iter=v4.begin();iter!=v4.end();iter++) cout<<*iter<<" "; cout<<endl; //perform a partial sort on the five vector int t=10; iter=v5.begin()+n; partial_sort(v5.begin(),iter,v5.end()); //print out partial sort cout<<" partial sort the "<<v5[t-1]<<" elements :"<<endl; for(iter=v5.begin();iter!=v5.end();iter++) cout<<*iter<<" "; cout<<endl; //perform a merge sort stable_sort(v2.begin(),v2.end()); cout<<"stable sort vector v2 :"<<endl; for(iter=v2.begin();iter!=v2.end();iter++) cout<<*iter<<" "; cout<<endl; merge(v1.begin(),v1.end(),v2.begin(),v2.end(), v6.begin()); cout<<" merge v1 and v2 into V6 : "<<endl; for(iter=v6.begin();iter!=v6.end();iter++) cout<<*iter<<" "; return 0; }
STL排序函数运用
最新推荐文章于 2025-06-16 15:47:23 发布