Re[2]: std::set + std::pair operator< - переопределение
От: Pavel515  
Дата: 14.08.06 07:10
Оценка:
Здравствуйте, Какая разница, Вы писали:

КР>Здравствуйте, 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 уважением, Павел.


КР>Надеюсь конструируеш set и задаеш предикат сравнения



КР>
КР>explicit set(const Pred& comp = Pred(), const A& al = A());
КР>



Нет, а как?

Наверное надо описать функцию:
bool Pred(const ranges_t& A,const ranges_t B){return (A.first<B.first)&&(A.second<B.second)&&(A.second<B.first);};

а потом

ranges_t ranges( и как-то передать туда этот Pred?)

документации 0! в MSDN примеры им-бы такие примеры! книжка еще не пришла! а работать надо!

С уважением, Павел.
Если хочешь выиграть в лотерею, то купи, хотя-бы лотерейный билет. (В.Мэгре)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.