繁体   English   中英

如何在C ++中创建优先级队列作为成员变量?

[英]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)那样调用。 您需要将函数设为staticfriend

static bool Compare(Employee* a, Employee* b);

要么

friend bool Compare(Employee* a, Employee* b);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM