0

我正在尝试使用我编写的自定义函数对自定义结构类型的列表进行排序,但给我一个错误:

使用未声明的标识符

struct myStruct
{
    int x1;
    int x2;
};

bool CompareData(const myStruct& a, const myStruct& b)
{
    if (a.x1 < b.x1) return true;
    if (b.x1 < a.x1) return false;

    // a=b for primary condition, go to secondary
    if (a.x2 < b.x2) return true;
    if (b.x2 < a.x2) return false;

    return false;
}

void sortingList ()
{
    std::list<myStruct> custom_dist;
    //...Fill list
    custom_dist.sort(CompareData); //Here i receive the error
}

这是错误:

在此处输入图像描述

因为似乎需要输入参数...

4

1 回答 1

0

这段代码对我来说编译得很好。您是否包含了标准列表中的列表?这就是我构建它的方式:g++ -Wall main.cpp

#include <list>

struct myStruct
{
int x1;
int x2;
};

bool CompareData(const myStruct& a, const myStruct& b)
{
if (a.x1 < b.x1) return true;
if (b.x1 < a.x1) return false;

// a=b for primary condition, go to secondary
if (a.x2 < b.x2) return true;
if (b.x2 < a.x2) return false;

return false;
}

int main()
{
    std::list<myStruct> custom_dist;
    custom_dist.sort(CompareData);
    return 0;
}
于 2013-08-17T09:12:25.387 回答