Шаблон SortItem

Шаблон SortItem предназначен для создания типов удобных для сортировки:

template <class H, class T=H> 
struct SortItem
{
    H head;
    T tail;

    SortItem () {}
    SortItem ( const H & h ) : head(h) {}
    SortItem ( const H & h, const T & t ) : head(h), tail(t) {} 
};

template <class H, class T> inline
bool operator < ( const SortItem<H,T> & a, const SortItem<H,T> & b )
{
    return a.head < b.head;
}

template <class H, class T> inline
bool operator > ( const SortItem<H,T> & a, const SortItem<H,T> & b )
{
    return a.head > b.head;
}

template <class H, class T> inline
bool operator <= ( const SortItem<H,T> & a, const SortItem<H,T> & b )
{
    return a.head <= b.head;
}

template <class H, class T> inline
bool operator >= ( const SortItem<H,T> & a, const SortItem<H,T> & b )
{
    return a.head >= b.head;
}

template <class H, class T> inline
bool operator == ( const SortItem<H,T> & a, const SortItem<H,T> & b )
{
    return a.head == b.head;
}

template <class H, class T> inline
bool operator != ( const SortItem<H,T> & a, const SortItem<H,T> & b )
{
    return a.head != b.head;
}

Поле head служит для сравнения элементов, а поле tail содержит связанную с ним информацию.

Исходники находятся в файле template.h.

Наверх