에 추가 인수 목록을 정렬 다음감안할 때 비교 함수
class Coordinate {
int i,j;
};
list<shared_ptr<Coordinate>> coordinates;
(Coordinate
내 코드는 정말 포함 된 내용을 단지 훨씬 간단 버전입니다.) 나는 최소 유클리드 거리에 존경과 list
을 정렬 할 주어진 좌표 iCenter,jCenter
. 이 좌표에 가장 가까운 Coordinate
은 목록 coordinates
의 첫 번째 위치에 있어야합니다. Furterhmore, 나는
struct ComparatorForCoordinate {
bool operator() (const shared_ptr<Coordinate>& c1, const shared_ptr<Coordinate>& c2) {
// return distance(c1 to center) > distance(c2 to center)
}
};
// sorting:
coordinates.sort(ComparatorForCoordinate());
내 문제는 내 operator()
요구는이 iCenter,jCenter
좌표를 알고 있다는 것입니다 구조 다음 사용하려고합니다. 이 두 개의 double 값을 어떻게 비교 함수에 전달할 수 있습니까? 연산자가 추가적으로 중심 위치에 대한 두 개의 이중 매개 변수를 갖도록하는 순진한 시도는 효과가 없습니다.
coordinates.sort(ComparatorForCoordinate(iCenter,jCenter));
내가 제목을 쥐게했으며, 추가 그 다른 사용자가이 질문 (및 답)을 쉽게 찾을 수 있습니다. 변경 사항을 마음에 들지 않으면 되돌릴 수 있습니다. –