在编写解决背包问题的算法时遇到了一个问题。我有一个由3个元素组成的数组(C ++ 11)的向量,我想按这些数组的第一个元素的值对向量进行排序。
我已经尝试了std :: sort与预定义的比较功能,但它甚至没有编译。
我猜想我的比较功能无法正常工作:
bool compareByValue(const data &a, const data &b)
{
return a[0] < b[0];
}
int main()
{
vector<array<int, 3> > myVector;
...
sort ( myVector.begin(), myVector.end(), compareByValue );
}
这不是我第一次遇到类似的问题,而是试图在网上找到解决方案,但是没有令人满意的结果。
我不知道您从哪里来的data
,但是您需要将其更改为array<int, 3>
或制作compareByValue
一个模板:
bool compareByValue(const array<int, 3> &a, const array<int, 3>&b)
{
return a[0] < b[0];
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句