【发布时间】:2023-03-30 08:25:01
【问题描述】:
您好,我在重载结构的运算符以用作键时遇到问题。这是我打算用作映射键的结构,基本上它有 2 个字符数组:
struct FConfig
{
char product[3];
char exchange[4];
bool operator < (const FConfig &rhs) const
{
return (strcmp(product, rhs.product) < 0 ||
strcmp(exchange, rhs.exchange <0));
}
};
我的比较是,只要产品或交换之一不等于 rhs,那么密钥就被认为是唯一的。我使用它,在运行时我得到“无效的运算符
【问题讨论】:
-
如果你为你的类提供一个 std 例程时必须表现得像一个操作符。我猜,您的运算符不是传递性的 - 您可能会发现 FConfig 的三个值,例如 A
标签: c++