У меня есть структура (скажем, Foo
), которая содержит просто строки и двойное число, и я создал набор, который также имеет класс компаратора, который сравнивает подмножество этих атрибутов.Поэтому моя декларация выглядит следующим образом: std::set<Foo, FooComp>
Когда я позвоню find()
, я буду ожидать, что все атрибуты Foo
будут использоваться в качестве ключа, или будет использоваться FooComp
?Я предполагаю первое.
Причина, по которой я спрашиваю, состоит в том, что у меня возникла проблема, когда ранее добавленный объект не обнаруживается в наборе, хотя я и пытался использовать find()
чтобы проверить его наличие.Я могу только предположить, что это произошло, поскольку, возможно, была небольшая разница в дабле?Атрибут double не используется в компараторе, но, предположительно, является частью ключа.
Любые мысли будут высоко оценены.