使用 std::sort 时"invalid operands to binary expression"
"invalid operands to binary expression" when using std::sort
当我尝试编译使用 std::sort 的项目时,我收到错误invalid operands to binary expression
。
我正在使用 std::排序如下:
vector <record> vrec;
...
sort(vrec.begin(), vrec.end());
我已经像这样重载了<运算符:>
bool operator< (record &r1, record &r2) { ... }
这是我收到的错误消息的摘录:
invalid operands to binary expression ('const record' and 'const record')
operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
~~~ ^ ~~~
>operator<
必须按值(const 引用或复制)而不是引用来获取参数:
bool operator<( const record& lhs , const record& rhs )
{
return /* whatever comparison criteria you have */;
}
您的比较运算符的签名与 std::less 期望的签名不匹配:const 引用参数。
sort3a.cpp:127:6:注意:候选函数不可行:第一个参数("常量记录")将失去常量限定符
布尔运算符<(记录 &R1,记录 &R2)
尝试像这样重新定义它:
bool operator< (const record &r1, const record &r2)
{ ... }
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- C++ Singleton - Prevent ::instance() to variable
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- Visual Studio Code "undefined reference to `WinMain@16'"
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 如何解决"invalid conversion from 'char' to 'const char*'"
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- Python str to C++ to Python str
- 如何修复类"Invalid operands to binary expression "类" to "类" "错误 (repl.it)
- 如何修复C++中的'Invalid operands to binary expression'错误
- 使用 std::sort 时"invalid operands to binary expression"
- 错误"invalid operands to binary expression"
- 如何解决此棉绒警告"Implicit binary conversion from int to unsigned int"
- 来自字符串库组件内部的"error: invalid operands to binary expression"
- 如何修复"invalid operands to binary expression"错误?
- 为什么添加"const"可以解决"invalid operands to binary expression"
- "Invalid operands to binary expression (ostream and void)"是什么意思,如何解决?
- 使用Boost.Geometry时"invalid operands to binary expression"?