gpt4 book ai didi

c++ - 映射比较运算符重载

转载 作者:行者123 更新时间:2023-11-28 00:50:45 25 4
gpt4 key购买 nike

我正在尝试使用 Comparator 进行 map 的键比较。

std::map<SomePointer,SomeValue, SomeComparator> testMap;

class SomeComparator
{
SomeComparator( ){ }

bool operator()( const SomePointer& sp1, const SomePointer& sp2) const
{
return sp1 == sp2;
}
}

我的问题是我是否需要重载 operator( ) 或其他东西以允许 map::find 使用适当的比较器来比较两个指针并检索匹配的指针。

最佳答案

对于 map ,您需要提供 <比较的类型——具体来说是“严格的弱排序”。当A不小于B且B不小于A时,推导相等。

但是,要回答您实际提出的问题:如果您像上面那样提供一个比较器仿函数,您就会重载 operator()对于那个仿函数。否则,您可以重载 operator<为您的 key 类型。

关于c++ - 映射比较运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14202527/

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