<分区>
我有一个类,我将其对象放入一个 unordered_set 中。 为此,我编写了自定义哈希生成器和比较器,以便能够使用 unordered_set 中的类对象。一切正常。此类的比较器如下所示:
struct MyClassComparator
{
bool
operator()(const MyClass & obj1, const MyClass & obj2) const
{
if (obj1.getName() == obj2.getName())
return true;
return false;
}
};
所以我正在比较对象的名称(字符串)(没什么特别的)。我用它来使用 .find
函数在集合中查找 MyClass 对象。
现在的问题是: 是否有可能过度加载此 () 运算符导致以下代码
struct MyClassComparator
{
bool
operator()(const MyClass & obj1, const MyClass & obj2) const
{
if (obj1.getName() == obj2.getName())
return true;
return false;
}
bool
operator()(const MyClass & obj1, const std::string & name) const
{
if (obj1.getName() == name)
return true;
return false;
}
};
并使用 .find
函数,如
my_set.find("my_class_name")
如果是,这样做是否会产生性能开销。