我想在 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
。
我应该如何进行?
非常感谢!