template<class TYPE>
class List {
TYPE *split(int (*cmpr)(TYPE *a, TYPE *b),TYPE *l, TYPE *r);
- void sort(int (*cmpr)(TYPE *a, TYPE *b),TYPE *ll, TYPE *rr);
static int cmpr(TYPE *a, TYPE *b) {
if( *a == *b ) return 0;
return *a > *b ? 1 : -1;
return p ? i : -1;
}
void swap(TYPE *item1, TYPE *item2);
- void sort(int (*cmp)(TYPE *a, TYPE *b) = 0) {
- return sort(cmp ? cmp : cmpr,0,0); }
+ void sort(TYPE *ap=0, TYPE *bp=0) { return sort(cmpr,ap,bp); }
+ void sort(int (*cmp)(TYPE *a, TYPE *b), TYPE *ap=0, TYPE *bp=0);
List() { first = last = 0; }
virtual ~List() { while(last) delete last; }
};