Здравствуйте, LuckLess, Вы писали:
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;
LL>Для того, чтобы std::set воспользовался твоим оператором < тебе надо перегрузить std::less<range_t>, так — чтобы тот звал твой оператор.
Этого нельзя делать, потому что стандартные шаблоны можно специализировать только для пользовательских типов, а range_t таковым не является — он всего лишь псевдоним для стандартного же std::pair<int, int>.