Re: std::set + std::pair operator< - переопределение
От: LuckLess Россия  
Дата: 14.08.06 09:01
Оценка:
Здравствуйте, 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>, так — чтобы тот звал твой оператор.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.