stl 中的自定义比较器
这已经让我发疯了 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你给了它 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.
没关系。我发现了问题。它位于调用相同算法函数的代码的不同部分。抱歉打扰大家,感谢您的帮助。
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.