C++priority_queue
でクラスを作成したいと考えています。Edge
そのために、edgeCompare
次のようにコンパレータークラスを作成しました。
class edgeCompare{
public:
map<int, glm::mat4x4> * Qmap;
edgeCompare(const map<int, glm::mat4x4> & Qm){
* Qmap = Qm;
}
bool operator() (const Edge & e1, const Edge & e2) const{
// code that compares and returns corresponding bool
// OBS: in this function I use *Qmap
}
}
ご覧のとおり、比較を行うには外部変数が必要です。
Apriority_queue
は通常、次のように宣言されます。
priority_queue<Edge, vector<Edge>, edgeCompare> pq;
しかし、私の場合、edgeComparator
変数を使用してを構築する必要がありますQmap
。
どのように進めればよいですか?
どうもありがとう!