gpt4 book ai didi

c++ - 将结构的运算符重载为映射键

转载 作者:搜寻专家 更新时间:2023-10-31 01:10:32 25 4
gpt4 key购买 nike

您好,我在重载结构的运算符以用作键时遇到问题。这是我打算用作映射键的结构,基本上它有 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));
}
};

我的比较是只要product或exchange中的一个不等于rhs的,那么key就认为是唯一的。我使用它并在运行时得到“无效的运算符 <”。我在创建 key 方面是全新的,所以在覆盖 < 运算符时我仍然无法理解逻辑。感谢任何帮助,谢谢!

最佳答案

你对如何operator <感到困惑应该工作很常见。你希望它看起来像这样:

bool operator < (const FConfig &rhs) const
{
int product_comparision = strcmp(product,rhs.product);
if (product_comparision<0) return true;
if (product_comparision>0) return false;
return strcmp(exchange,rhs.exchange)<0;
}

product是您的主键,您唯一考虑次键的时间是主键值是否相等。

关于c++ - 将结构的运算符重载为映射键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15893190/

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