Редактировать: этот ответ неверен согласно комментарию Георга.
У меня нет компилятора здесь, но полное объявление std :: set:
template < class Key, class Compare = less<Key>,
class Allocator = allocator<Key> > class set;
"Ключ" внешнего набора - "std :: set". Компаратор является "std :: less>" или коротким оператором <(set, set) ", который не определен. Компилятор предупреждает об этом только при первом использовании / создании экземпляра компаратора. </p>
Я не думаю, что есть полезный упорядочиватель / компаратор для std :: set. Вам лучше использовать std :: vector, который не упорядочивает элементы и не нуждается в компараторе.
О, и не разрешается изменять (во время выполнения) установленные ключи, если это повлияет на порядок. Но это будет ошибка времени выполнения, а не ошибка компиляции.