Итак, я пытаюсь проверить, присутствует ли конкретный объект в наборе.Для этого я использую метод count ().Теперь, похоже, не вернуть правильный ответ.Позвольте мне объяснить проблему немного яснее -
Я объявил класс таким образом
class Node{
public:
Node(int _state=0, int _cost=0)
{
state = _state;
cost = _cost;
}
bool operator<(const Node& rhs)
{
return cost < rhs.cost;
}
bool operator==(const Node& rhs)
{
cout << "== operator method used" << endl;
if (rhs.state == state)
return true;
return false;
}
int state;
int cost;
};
в своем коде, я объявил набор следующим образом -
set<Node*> myset;
после нескольких вставок myset выглядит следующим образом: {{1, 5}, {2, 6}, {3, 9}}
Теперь я проверяю, является ли {1, 7} частьюнабор.Как бы это сделать?Я написал метод оператора == в классе Node, который никогда не вызывается.Тогда на каком основании count () проверяет, находится ли объект уже в наборе? ... Я бы хотел, чтобы счетчик работал таким образом, что если {1, 5} уже присутствует в myset, он должен просмотреть {1,7} как повторяющаяся запись.