Set не поддерживает итератор произвольного доступа. Если вы хотите сравнить объекты другим способом (не будете использовать оператор <), вы должны выполнить следующее </p>
1) первый путь
bool compareFunciton(const setElementClass& lhs,const setElementClass& rhs)
{
//return true if lhs's key is smaller than rhs and false at other case
}
set<setElementClass,compareFunction> someSet;
2) Или вы можете использовать класс функции вместо функции, подобной этой
class compareClass
{
public:
bool opreator()const setElementClass& lhs,const setElementClass& rhs)
{
//return true if lhs's key is smaller than rhs and false at other case
}
};
compaerClass comp;
set<setElementClass,comp> someSet;
Также я думаю, что вы должны посмотреть на функциональный заголовок. Там вы можете найти некоторые классы функций, которые вы можете использовать в будущем. http://www.cplusplus.com/reference/std/functional/