stl 中的自定义比较器

发布于 2024-10-08 02:33:08 字数 479 浏览 2 评论 0原文

这已经让我发疯了 3 个小时。有人看到这不起作用的原因吗?

struct sortByPropRev
{
    bool operator()(const cust_type &a, const cust_type &b) const
    {
        return a.prop > b.prop;
    }
};
...
priority_queue<cust_type, vector<cust_type>, sortByPropRev> x;

我收到编译错误:
错误 C2664: 'bool (cust_type &,cust_type &)' :无法将参数 1 从 'const cust_type' 转换为 'cust_type &'

以及另外 2 个类似的参数,但位于 < 的不同行代码>算法.h

This has been driving me nuts for 3 hours. Anybody see a reason why this isn't working?

struct sortByPropRev
{
    bool operator()(const cust_type &a, const cust_type &b) const
    {
        return a.prop > b.prop;
    }
};
...
priority_queue<cust_type, vector<cust_type>, sortByPropRev> x;

I get compile errors:
Error C2664: 'bool (cust_type &,cust_type &)' : cannot convert parameter 1 from 'const cust_type' to 'cust_type &'

and 2 more just like it but on different lines of algorithm.h

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风透绣罗衣 2024-10-15 02:33:08

你给了它 b.pprop,而不是 a.prop。我认为考虑到编译器未能正确解析结构定义的错误 - 检查其上方代码中的语法错误。

You gave it b.pprop, vs a.prop. I think given the error that the compiler failed to parse the struct's definition properly- check for syntax errors in the code just above it.

阳光①夏 2024-10-15 02:33:08

没关系。我发现了问题。它位于调用相同算法函数的代码的不同部分。抱歉打扰大家,感谢您的帮助。

Never mind. I found the problem. I t was in a different part of the code that was calling the same algorithm functions. Sorry to bother everybody and thanks for trying to help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文