我正在尝试实现一个简单的比较器,用于根据数组“_vec”中的值对索引进行排序。我收到“无效的 < 运算符”运行时错误消息。我不明白以下代码有什么问题:
class Compare{
vector<int>& _vec;
public:
Compare(vector<int>& vec) : _vec(vec) {}
bool operator()(size_t i, size_t j){
if(_vec[i] != _vec[j])
return _vec[i] < _vec[j];
else
return (double)rand()/RAND_MAX < 0.5;
}
};
我正在使用以下函数调用:
sort(inds.begin(),inds.end(),Compare(vals));
其中 inds 只是一个包含从 1 到 15(比如说)的索引的数组,而 vals 是长度为 15 的数组,其中包含一些我想要计算其排序索引的值。总体目标是在 vals 中的两个(或更多)条目相等时随机化排序顺序。有什么帮助吗?