Я реализует boost::bimap
и я рассматриваю, используя unordered_multiset_of
но unordered_multiset_of
нужно передать хэш-функцию и равный оператор к нему. И я не могу понять это правильно.вопросов о unordered_multiset_of в повышающем bimap
class MyClass
{
std::string s1;
std::string s2;
bool operator == (MyClass const& myClass)
{
return (s1 == myClass.s1 && s2 == myClass.s2);
}
};
namespace std
{
template<>
struct hash<MyClass>
{
std::size_t operator()(const MyClass& myClass) const
{
std::size_t Seed = 0;
boost::hash_combine(Seed, myClass.s1);
boost::hash_combine(Seed, myClass.s2);
return Seed;
}
}
}
int main()
{
typedef boost::bimaps::bimap<boost::bimaps::unordered_multiset_of<client,std::hash<MyClass>, std::equal_to>, .......................................> MyBiMap;
MyBiMap MAP;
}
Кажется, что моя хеш-функция и функция equal_to дают ошибку. Как его исправить? Я верю, что std::equal_to()
автоматически вызовет мой оператор ==, определенный в MyClass
, правильно?
Спасибо. Это решает проблему. – cynric4sure
Привет, Алексридер, Еще один вопрос. Теперь у меня есть бимап с unordered_multiset с обеих сторон. Я хочу проверить, существует ли связь между двумя объектами. Я могу найти syntex для ключа поиска, но кажется, что функция поиска не существует, правильно? – cynric4sure