C++ 将结构用作映射中的键,忽略==运算符,误报
我试图使用结构作为映射中的键,但尽管定义了C++ 将结构用作映射中的键,忽略==运算符,误报,c++,struct,stdmap,C++,Struct,Stdmap,我试图使用结构作为映射中的键,但尽管定义了std::map还是使用了等价的概念。当 !(a < b) && !(b < a) !(a
std::map
还是使用了等价的概念。当
!(a < b) && !(b < a)
!(a
换句话说,映射从不使用=
查看两个元素是否相同。在地图中,如果两个元素具有相同的文件路径
,则认为它们是等效的。如果您想在映射中的排序中也考虑导入设置
,则需要在操作符中进行比较std::map
使用等效概念。当
!(a < b) && !(b < a)
!(a
换句话说,映射从不使用=
查看两个元素是否相同。在地图中,如果两个元素具有相同的文件路径
,则认为它们是等效的。如果您想在映射中的排序中也考虑导入设置
,您需要在操作符中比较这一点什么是“误报”?std::map
从不调用操作符==
,只有上面两个操作符的操作符-我的代码底部有一个MRE。有评论解释了这一点,自从我发布后就一直在那里,没有编辑。投票结束这个问题的人——答案解决了我的问题,可以帮助其他人,它真的不应该因此而结束reason@WillHain它有助于在散文中进行解释,而不仅仅是在代码中。不是每个人都会通读代码来发现你解释了那里的行为。什么是“误报”?std::map
从不调用operator==
,只有operator到上面两者-我的代码底部有一个MRE。有评论解释了这一点,自从我发布后就一直在那里,没有编辑。投票结束这个问题的人——答案解决了我的问题,可以帮助其他人,它真的不应该因此而结束reason@WillHain它有助于在散文中进行解释,而不仅仅是在代码中。不是每个人都会通读代码,发现你解释了那里的行为。谢谢你的回答谢谢你的回答