我想实现在一个阵列“_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的数组,其中有些值的排序索引要计算。总体目标是在val中的两个(或更多)条目相等时随机排序。任何帮助?
你应该使用尾部下划线(或别的东西来区分这些)[而不是领先的下划线](http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore -in-AC-标识符)。 –
@Brian:由于这些不是文件范围,并且下划线后面没有大写字母,因此只要不被保留就可以。尽管如此,这一领域引起了另一个命名约定可能会让一些人更快乐的混淆。 –
注意 - 如果'vals'的长度为15,那么'inds'最好包含[0..14]范围内的索引,而不是[1..15]。 –