任何人都可以描述Dijkstra算法的这部分代码

时间:2017-10-06 06:09:43

标签: algorithm dijkstra

我无法理解 Dijkstra算法的这一部分。我希望逐行理解这部分代码。

代码:

bool operator < (const DATA &p) const { return p.dist > dist; }

我掌握了c / c ++代码的基本知识。

1 个答案:

答案 0 :(得分:1)

bool operator < (const DATA &p) const {
    return p.dist > dist;
}

这比<运算符重载少。

您传递的DATA &p前缀为const,这意味着p通过引用传递,并且无法在函数内修改或更改。

const {开头的函数意味着方法内部不会有写/修改操作。

p.dist > dist表示在推入priority_queue后,两个Data之间的比较将遵循此标准 - Data 较小 < / strong> dist将首先出现在优先级队列中,而Data的长度为dist。这听起来很矛盾,但这是正确的,因为priority_queue默认为最大堆。