boost::bimap查找关系
我只想问一下boost::bimap查找关系,boost,find,bimap,Boost,Find,Bimap,我只想问一下boost::bimap是否提供了一种在bimap中查找关系的方法? 因为我有一个两边都是无序的_multiset的bimap,我需要一个函数来检查它们是否是两个对象之间的关系。 我读了一些文档,但没有找到 class MyClass { std::string s1; std::string s2; bool operator == (MyClass const& myClass) { return (s1 == myClass.s1 &&a
boost::bimap
是否提供了一种在bimap
中查找关系的方法?
因为我有一个两边都是无序的_multiset的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>, boost::bimaps::bimap<boost::bimaps::unordered_multiset_of<client,std::hash<MyClass>, std::equal_to>> MyBiMap;
MyBiMap MAP;
Map.value_type myRelation;
MAP.insert(myRelation(myClassObject1,myClassObject2));
MAP.insert(myRelation(myClassObject1,myClassObject4));
MAP.insert(myRelation(myClassObject3,myClassObject4));
MAP.insert(myRelation(myClassObject3,myClassObject6));
MAP.insert(myRelation(myClassObject5,myClassObject2));
// I want to check whether there is a relation between myClassObject1,myClassObject4
// for example MAP.find(myRelation(myClassObject1,myClassObject4)) returns the iterator
// and MAP.find(myRelation(myClassObject1,myClassObject6)) returns end();
}
class-MyClass
{
std::字符串s1;
std::字符串s2;
布尔运算符==(MyClass常量和MyClass)
{
返回值(s1==myClass.s1&&s2==myClass.s2);
}
};
名称空间标准
{
模板
结构散列
{
std::size\u t运算符()(常量MyClass和MyClass)常量
{
std::size\u t Seed=0;
boost::hash_combine(Seed,myClass.s1);
boost::hash_combine(Seed,myClass.s2);
返回种子;
}
}
}
int main()
{
试着给出一些示例代码(或者至少是一些演示想要的行为的代码)。刚刚编辑,请参阅我的原始文章,thx