優先キューの私の定義は次のとおりです。
template<typename Node, typename Cmp = std::less<Node> >
struct deref_compare : std::binary_function<Node*,Node*,bool>
{
deref_compare(Cmp const& cmp = Cmp())
: cmp(cmp) {}
bool operator()(Node* a, Node* b) const {
return (a->getfValue()> b->getfValue());
}
private:
Cmp cmp;
};
typedef deref_compare<Node,std::greater<Node> > my_comparator_t;
priority_queue<Node*,vector<Node*>,my_comparator_t> openq;
私がやっている:
openq.push(myNode)
3 ~ 4 個のノードに入ると、セグメンテーション エラーが発生します。
mynode
は空ではありません。
どうすれば解決できますか?