В наборе стандартной библиотеки C ++ less<T>
- это функтор по умолчанию, используемый для сравнения. Но всякий раз, когда мы создаем некоторый определяемый пользователем тип данных (например, используя структуру), а также перегружаем оператор «меньше» '<', при создании набора нашего настраиваемого типа данных не возникает проблем. </p>
Итак, мой вопрос заключается в том, что, поскольку набор использует less<T>
по умолчанию для сравнения, почему не возникает проблем после того, как мы перегрузим оператор «<» меньше чем. какая связь между '<' и меньше? Я понимаю, что не возникнет проблем, если мы определим функтор для нашего определяемого пользователем типа данных, но я не могу понять, почему это срабатывает путем перегрузки оператора '<'. </p>
И, пожалуйста, примите Мой один последующий вопрос заключается в том, что всякий раз, когда создается набор для определяемого пользователем типа данных, что считается хорошей практикой для перегрузки оператора '<' или определения нашего собственного функтора и передачи его в качестве параметра шаблона. например: </p>
set<my_type,mycompar> myset