Qual operador precisa ser sobrescrito para usar o std :: set no código C ++?

Esta é uma questão de entrevista.

Referindo-se ao código de exemplo, qual dos operadores precisa ser substituído para usarstd::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 <
 */

Na verdade, não entendo por que um operador precisa ser substituído aqui. "set" não permite elementos duplicados, talvez o operador! = precise ser substituído?

questionAnswers(4)

yourAnswerToTheQuestion