gpt4 book ai didi

c++ - 为 unordered_set 重载 () 运算符

转载 作者:行者123 更新时间:2023-11-28 01:36:48 24 4
gpt4 key购买 nike

<分区>

我有一个类,我将其对象放入一个 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")

如果是,这样做是否会产生性能开销。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com