开发者社区> 问答> 正文

STL sort函数不支持3个参数?报错

ispecObjVector是vector<自定义类>类型

sort(ispecObjVector.begin(),ispecObjVector.end(),compare);

bool CATVectorGroup::compare(SpecObject spObjectOne,
                                                   SpecObject spObjectAnother);

编译器报错:error C2780: 'void std::sort(_RanIt,_RanIt)' : expects 2 arguments - 3 provided

http://msdn.microsoft.com/en-us/library/ecdecxh1%28v=vs.80%29.aspx

MSDN上也有3个参数的啊,想问下,这个方式到底哪里错了?不明白

展开
收起
爱吃鱼的程序员 2020-06-14 22:10:13 569 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    compare需要是全局函数或者静态

    User-definedpredicatefunctionobject.

    msdn说的很清楚啦.

    <preclass="brush:cpp;toolbar:true;auto-links:false;">#include<vector>#include<algorithm>usingnamespacestd;boolcmp(inta,intb){returna<b;}structscmp{booloperator()(inta,intb){returna<b;}};intmain(){vector<int>myvec;myvec.push_back(10);sort(myvec.begin(),myvec.end(),cmp);sort(myvec.begin(),myvec.end(),scmp());return0;}




    2020-06-14 22:10:29
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载