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。
どのように進めればよいですか?
どうもありがとう!