1

priority_queueを使用して、それを関数に渡したい:

// compare points according their distance to some target point
struct MyComparator {
    Point target;
    MyComparator(Point t) : target(t) {}

    bool operator() (const Point& p1, const Point& p2) {
         return distance(target, p1) < distance(target, p2);
    }
};

typedef priority_queue<Point, vector<Point>, MyComparator> myque;
void myfunc(const Point& target, myque& que) { ... }

// call myfunc
Point target = ...;
myque queue(MyComparator(target));
myfunc(target, queue); 
// error :
no matching function for call to ‘myfunc(const Point&, myque (&)(MyComparator))’

このエラーを解決するにはどうすればよいですか?

ありがとう。

4

0 に答える 0