Какой оператор нужно переопределить, чтобы использовать std :: set в коде C ++?

Это вопрос интервью.

Referring to the sample code, which one of the operators needs to be overridden in order to use std::set<Value>

 #include<iostream>

 class Value
 {
      std::string   s_val;
      int           i_val;
  public:
      Value(std::string s, int i): s_val(s) , i_val(i){}
 };

 // EOF

 /*
 a       operator !=
 b       operator >
 c       operator <=
 d       operator >=
 e       operator <
 */

На самом деле, я не понимаю, почему оператор должен быть переопределен здесь. & Quot; установить & Quot; не допускает дублирование элементов, может быть, оператор! = должен быть переопределен?

Ответы на вопрос(4)

Error: User Rate Limit Exceededoperator<Error: User Rate Limit Exceededstrick weak orderingError: User Rate Limit Exceededstd::setError: User Rate Limit Exceededstd::map.

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceededoperator=Error: User Rate Limit Exceededoperator!=Error: User Rate Limit Exceeded

if (!(a < b || b < a))
    // equivalent!

Error: User Rate Limit Exceeded

Решение Вопроса

Error: User Rate Limit ExceededhaveError: User Rate Limit Exceededstd::setError: User Rate Limit Exceededbool operator<()Error: User Rate Limit ExceededError: User Rate Limit ExceededError: User Rate Limit ExceededError: User Rate Limit ExceededError: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Ваш ответ на вопрос