¿Qué operador se debe anular para usar std :: set en el código C ++?

Esta es una pregunta de entrevista.

Refiriéndose al código de muestra, cuál de los operadores debe ser anulado 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 <
 */

En realidad, no entiendo por qué un operador debe ser anulado aquí. "set" no permite elementos duplicados, tal vez el operador! = necesita ser anulado?

Respuestas a la pregunta(4)

Su respuesta a la pregunta