在使用 #include<algorithm>
中的 sort
函数
遇到 “void std::sort(const _RanIt,const _RanIt)”: 应输入 2 个参数,却提供了 3 个 之类的错误
问题的出现
如下:
有一个 Camera 类下有一个函数声明:bool rendererCmp(MeshRenderer* a, MeshRenderer* b);
注意不是静态(static)的
使用 sort 中第三个参数使用该方法:
// 排序 renderers
std::sort(renderers.begin(), renderers.end(), rendererCmp);
然后就报错了:
解决方法:
使用 bind 封装比较方法
将用于比较的函数声明为 static 静态函数
将比较函数用 lambda 方式来传入
也是上面 static 那篇:
然后我使用的是 static 的方式,比较简洁。
这样就不会报错了。