#ifndef SORTERH #define SORTERH #include //for iter_swap using namespace std; //IT doesn't have to be a random access iterator-- //it can be merely bidirectional. template void sorter(IT first, IT last) { while (first != --last) { for (IT it = first; it != last; ++it) { IT it1 = it; ++it1; if (*it1 < *it) { iter_swap(it, it1); } } } } template void sorter(IT first, IT last, COMP comp) { while (first != --last) { for (IT it = first; it != last; ++it) { IT it1 = it; ++it1; if (comp(*it1, *it)) { iter_swap(it, it1); } } } } #endif