0
我不明白Dijkstra算法的這個給定的部分。我想逐行理解這部分代碼。任何人都可以描述Dijkstra算法的這部分代碼
代碼:
bool operator < (const DATA &p) const { return p.dist > dist; }
我的C/C++代碼的基本知識。
我不明白Dijkstra算法的這個給定的部分。我想逐行理解這部分代碼。任何人都可以描述Dijkstra算法的這部分代碼
代碼:
bool operator < (const DATA &p) const { return p.dist > dist; }
我的C/C++代碼的基本知識。
bool operator < (const DATA &p) const {
return p.dist > dist;
}
這小於<
運算符重載。
您正在通過DATA &p
前綴const
這意味着p
通過引用傳遞,它不能在函數內部修改或更改。
以const {
開始的功能意味着該方法內不會有寫入/修改操作。
p.dist > dist
裝置推入priority_queue
,二Data
之間比較將遵循這一標準後 - 當具有較小dist
將出現在第一比Data
優先隊列具有較長dist
Data
。這聽起來是矛盾的,但這是真的,因爲priority_queue
默認是最大堆。
它被稱爲操作員重載。它在代碼中重載'<'運算符,當你做'a tilz0R