Здравствуйте, Pavel515, Вы писали:
P>Привет Всем!
P>"Я еще не волшебник, а только учусь!"
P>наверное что-то не понимаю!
P>вот такой код:
P>typedef pair<int,int> range_t;
P>bool operator<(const range_t& A,const range_t& B){return (A.first<B.first)&&(A.second<B.second)&&(A.second<B.first);};
P>typedef set<range_t> ranges_t;
P>мой оператор "<" остается за бортом! ваполняется стандартный из <utility>
P>#include <utility>
P>template<class _T1, class _T2> inline
P> bool __cdecl operator<(const pair<_T1, _T2>& _X,
P> const pair<_T1, _T2>& _Y)
P> {return (_X.first < _Y.first ||
P> !(_Y.first < _X.first) && _X.second < _Y.second); }
P>как переопределить оператор "<" для типа range_t
P>C уважением, Павел.
Для того, чтобы std::set воспользовался твоим оператором < тебе надо перегрузить std::less<range_t>, так — чтобы тот звал твой оператор.