// lajittelu.cpp // Esimerkki sort-algoritmin käytöstä // Vesa Lappalainen 5.4.2000 #include #include #include using std::copy; using std::ostream_iterator; using std::cout; using std::sort; using std::replace; class cTutki { int araja; int yraja; public: cTutki(int iaraja,int iyraja) { araja = iaraja; yraja = iyraja; } bool operator() (int a,int b) { int av = ( araja <= a && a <= yraja); int bv = ( araja <= b && b <= yraja); if ( av && bv ) return a > b; if ( !av && !bv ) return a < b; if ( av ) return false; return true; } }; bool parit(const int a,const int b) { if ( ( ( a ^ b ) & 1 ) == 0 ) return a < b; if ( ( a & 1 ) == 1 ) return true; return false; } int main(void) { int luvut[5] = { 2,5,1,9,3}; copy(luvut,luvut+5,ostream_iterator(cout," ")); cout << "\n"; //2 5 1 9 3 sort(luvut,luvut+5,parit); copy(luvut,luvut+5,ostream_iterator(cout," ")); cout << "\n"; //1 3 5 9 2 sort(luvut,luvut+5,cTutki(3,5)); copy(luvut,luvut+5,ostream_iterator(cout," ")); cout << "\n"; //1 2 9 5 3 replace(luvut,luvut+5,3,4); copy(luvut,luvut+5,ostream_iterator(cout," ")); cout << "\n"; //1 2 9 5 4 return 0; }