按数组元素排序数组的向量

Jat*_*mir -3 c++ arrays sorting vector c++11

我在编写解决背包问题的算法时遇到了问题.我有一个3元素数组(C++ 11)的向量,我想通过let的说明这些数组的第一个元素来对向量进行排序.

我已尝试使用预定义的比较函数进行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 );
}
Run Code Online (Sandbox Code Playgroud)

这不是我第一次遇到类似的问题,我试图在网上找到解决方案,但没有任何令人满意的结果.

Mik*_*ail 5

另请注意,std::array重载的比较运算符,它按字典顺序比较数组.这意味着,如果要基于第一个元素进行排序,则甚至不需要谓词.只是std::sort你的矢量.