我有一个对象
priority_queue<SState,vector<SState>,greater<SState> > m_queue;
这是一个类的成员,其中 SState 是一个内部结构,它定义了
struct SState
{
SState(int p, int b):priority(p),bbb(b){}
~SState(){}
int priority;
int bbb;
};
和一个比较器
inline bool operator > (const MyClass::SState& left, const MyClass::SState& right)
{
return left.priority > right.priority;
}
我有一个创建 SState 对象的方法。
m_queue.push(SState(p,b));
和其他方法
if (!m_queue.empty())
{
const SState& state = m_queue.top();
...
m_queue.pop();
}
我有一个堆损坏。怎么做才对?