std::priority_queue 包含带有包含状态的函子的结构
std::priority_queue contain struct with functor that contains a state
关于 std::priority_queue 包含 / 的问题有两个很好的答案:
如果我需要那些比较结构来保存状态,例如 ofstream 的对象怎么办?
提前致谢。
您可以使用需要状态的构造函数来定义比较仿函数:
struct Compare
{
State state;
Compare(State state)
: state(state)
{
}
bool operator()(const Item& a, const Item& b)
{
... // use state
}
};
并将其以所需状态构造的实例传递给priority_queue constructor:
priority_queue<Item, std::vector<Item>, Compare> queue(Compare(state));
关于 std::priority_queue 包含
如果我需要那些比较结构来保存状态,例如 ofstream 的对象怎么办?
提前致谢。
您可以使用需要状态的构造函数来定义比较仿函数:
struct Compare
{
State state;
Compare(State state)
: state(state)
{
}
bool operator()(const Item& a, const Item& b)
{
... // use state
}
};
并将其以所需状态构造的实例传递给priority_queue constructor:
priority_queue<Item, std::vector<Item>, Compare> queue(Compare(state));