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

时间:2019-07-27 03:29:19

标签: c++ priority-queue

如何创建一个优先级队列作为成员变量并将成员函数用作比较器?

我尝试使用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;
};

在将函数指针设置为成员变量时,我也遇到错误。

1 个答案:

答案 0 :(得分:0)

<?php session_start(); ?> <?php if( $_SESSION['loggedInUser'] ) { include('includes/connection.php'); $query2 = "SELECT * FROM users"; $result2 = mysqli_query( $conn, $query2); ?> <ul class="nav navbar-nav"> <li><a href="clients.php">My Clients</a></li> <li><a href="add.php">Add Client</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <p class="navbar-text">Welcome, <?php if( mysqli_num_rows($result2) > 0 ) { while( $row = mysqli_fetch_assoc($result2) ) { $name = $row['name']; echo "<span style='color: #8F8F8F;'>" . $name . "</span>"; } } mysqli_close($conn); ?> !</p> 是非静态成员函数,不能像Compare那样调用。 您需要使函数Compare(a, b)static

friend

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