[英]How to Create a Priority Queue in C++ as a member variable?
如何创建优先级队列作为成员变量并将成员函数用作比较器?
我试过使用c样式的函数指针,但无法弄清楚如何将函数指针作为成员函数的成员变量。
class CallCenter
{
std::function<bool(Employee*, Employee*)> m_comp;
public:
CallCenter() : m_comp(Compare) {}
bool Compare(Employee* a, Employee* b);
std::priority_queue<Employee*, std::vector<Employee*>, m_comp>> m_available;
};
尝试将函数指针设置为成员变量时,我也遇到错误。
Compare
是一个非静态成员函数,不能像Compare(a, b)
那样调用。 您需要将函数设为static
或friend
:
static bool Compare(Employee* a, Employee* b);
要么
friend bool Compare(Employee* a, Employee* b);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.