尝试next_permutation时,"__ comp不能用作函数"c ++

Mar*_*jus 7 c++

我正在尝试使用stl中的next_permutation进行排列,但是我遇到了错误,我无法弄清楚如何修复它.我已经尝试了谷歌搜索,但是出现的唯一结果是人们使用相同的函数和函数的变量名称,但事实并非如此.

这是错误:

'__comp' cannot be used as a function
Run Code Online (Sandbox Code Playgroud)

这是代码:

struct rectangle{
    int n;
    int h;
    int w;
};

bool check(const rectangle& rect1,const rectangle& rect2){
    return rect1.n < rect2.n;
}

do{
//...
} while ( next_permutation(recs.begin(), recs.end(), check) ); // Getting error on this line.
Run Code Online (Sandbox Code Playgroud)

这里是完整的源代码以及示例输入,以备需要时 http://pastebin.com/eNRNCuTf

Eri*_*rik 14

H = rec4.w + max(rec1.h, rec2.h, rec3.h);
Run Code Online (Sandbox Code Playgroud)

你不想传递rec3.h那里 - 错误信息只是说第3个参数max不能用作函数.我相信你打算:

H = rec4.w + max(max(rec1.h, rec2.h), rec3.h);
Run Code Online (Sandbox Code Playgroud)