c ++如何对结构数组进行排序

时间:2014-04-29 11:36:49

标签: c++ arrays sorting struct

我有一系列结构,如下所示。

struct valueCache
{
    bool valid;
    int startPc;
    int index;
    f32bit input[12];
    f32bit result[12];
};

static const int vcSize = 32;
static valueCache * vc = new valueCache[vcSize];

我想通过索引按降序对此数组进行排序。所以我尝试了这个:

myClass.cpp

bool myClass::sortByIndex(const valueCache &lhs, const valueCache &rhs) { return lhs.index > rhs.index; }

bool myClass::sortArray(
{    
    std::sort(vc, vc + vcSize, sortByIndex);
}

myClass.h

class myClass
{
public:
    bool sortByIndex(const valueCache &lhs, const valueCache &rhs);
}

我收到此错误

error: argument of type 
‘bool (gpu3d::myClass::)(const gpu3d::valueCache&, const gpu3d::valueCache&)’ does not match 
‘bool (gpu3d::myClass::*)(const gpu3d::valueCache&, const gpu3d::valueCache&)’

我有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

声明sortByIndex static,因为您无法将非静态成员函数传递给std::sort