マップ内の座標を表すn 個のオブジェクトのセットがあり、それらのそれぞれについて、その位置に最も近い kを持つpriority_queueを維持したいと考えています。
問題は、 priority_queueが関数オブジェクトではなく述語のクラスを受け取るため、 priority_queueごとに異なる参照ポイントを指定する方法が見つからないことです
つまり、次のようなものです:
std::priority_queue<
Vertex*,
std::vector<Vertex*>,
DistanceComparer(fromVertex)>
pqueue; // doesn't compile
とは対照的に:
DistanceComparer::from = fromVertex;
std::priority_queue<
TRVertex*,
std::vector<TRVertex*>,
DistanceComparer>
pqueue; // compiles but unhelpful
すべてのpriority_queueに異なるポイント参照が必要なため、静的から作成することは実際には役に立ちません