gpt4 book ai didi

c++ - 如何排序 w.r.t.使用 C++ 自定义比较函数的某些参数?

转载 作者:行者123 更新时间:2023-12-01 14:48:26 24 4
gpt4 key购买 nike

我试图通过它们的极角 w.r.t. 对平面上的点进行排序。 O点。代码的简化版本如下所示:

bool comparePolar(point A, point B, point O){
//if point B lies to the left of the edge OA, return false
//return true
}


那么,如何在调用sort函数时将点O传递给这个函数,它会使用comparePolar作为它的比较函数呢?

最佳答案

你需要构造一个函数对象来保存 O (或对其的引用)。最简单的方法是使用 lambda

// initialised wherever
std::vector<point> points;
point O;

// Capture O by value
auto cmp = [O](point A, point B) { return comparePolar(A, B, O); };
std::sort(points.begin(), points.end(), cmp);

关于c++ - 如何排序 w.r.t.使用 C++ 自定义比较函数的某些参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60812334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com