关于用C++ lambda自定义STL容器排序函数的错误

struct gd{
double x,y;
};
bool  cmp(const gd &a,const gd &b)
{
return [&a,&b](const gd &a,const gd &b)->bool{
if(fabs(a.x-b.x)<1e-6) return (a.y-b.y<-1e-6);
else return (a.x-b.x<-1e-6);
};
}
set<gd, decltype(cmp)* > se(cmp);
int main()
{
return 0;
}
//目的是根据x和y从小到大排序。
//求解为什么实际不运行该lambda表达式
#C/C++#
全部评论
bool cmp(const gd &a, const gd &b) {     return [&a, &b]()->bool{         if(fabs(a.x - b.x) < 1e-6) {             return (a.y - b.y < -1e-6);         } else {             return (a.x - b.x < -1e-6);         }     }(); } 不必给lambda套个函数,campare 是个 callable 对象,不局限于函数指针。lambda也可以 auto cmp = []() {/*...*/}; std::set<Type, decltype(cmp)> mySet(cmp);
点赞 回复 分享
发布于 2019-11-06 13:54

相关推荐

07-08 13:48
门头沟学院 C++
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务