谁能描述一下 Dijkstra 算法的这部分代码
Can anybody please describe this portion of code of the Dijkstra algorithm
我无法理解 Dijkstra 算法 的给定部分。我想逐行理解这部分代码。
代码:
bool operator < (const DATA &p) const { return p.dist > dist; }
我有 c/c++ 代码的基础知识。
bool operator < (const DATA &p) const {
return p.dist > dist;
}
这小于 <
运算符重载。
您正在传递前缀为 const
的 DATA &p
,这意味着 p
是通过引用传递的,无法在函数内部修改或改变。
以const {
开头的函数表示方法内部不会有write/modify操作。
p.dist > dist
表示推入 priority_queue
后,两个 Data
之间的比较将遵循此标准 - 当 Data
具有 较小的 dist
将首先出现在优先级队列中,而不是 Data
较长的 dist
。这听起来很矛盾,但这是真的,因为 priority_queue
默认是最大堆。
我无法理解 Dijkstra 算法 的给定部分。我想逐行理解这部分代码。
代码:
bool operator < (const DATA &p) const { return p.dist > dist; }
我有 c/c++ 代码的基础知识。
bool operator < (const DATA &p) const {
return p.dist > dist;
}
这小于 <
运算符重载。
您正在传递前缀为 const
的 DATA &p
,这意味着 p
是通过引用传递的,无法在函数内部修改或改变。
以const {
开头的函数表示方法内部不会有write/modify操作。
p.dist > dist
表示推入 priority_queue
后,两个 Data
之间的比较将遵循此标准 - 当 Data
具有 较小的 dist
将首先出现在优先级队列中,而不是 Data
较长的 dist
。这听起来很矛盾,但这是真的,因为 priority_queue
默认是最大堆。