2017-10-06 10 views
0

Dijkstra 알고리즘의 해당 부분을 이해할 수 없습니다. 이 코드 부분을 한 줄씩 이해하고 싶습니다.누구든지 Dijkstra 알고리즘 코드 부분을 설명해주십시오.

코드 :

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

나는 C/C++ 코드의 기본 지식을 가지고.

+1

연산자 오버로드라고합니다. 이 함수는 코드에서'<'연산자를 오버로드하고이 함수는'a tilz0R

답변

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

이 값은 < 연산자 오버로딩보다 작습니다.

const이 접두사 인 DATA &p이 전달됩니다. 즉 p은 참조로 전달되며 해당 함수 내에서 수정하거나 변경할 수 없습니다.

const {으로 시작하는 함수는 메소드 내에 쓰기/수정 작업이 없음을 의미합니다.

p.dist > dist 수단이 기준을 따를 두 Data 사이 비교 priority_queue로 누른 후 - Datadistdist 이상과 Data보다 우선 순위 큐에 먼저 등장한다 작은 갖는 경우. 이것은 상반되는 것처럼 들리지만, 이것은 priority_queue이 기본적으로 최대 힙이므로 true입니다.