우주신과의 교감이라는 문제에서 이런 코드를 썼는데요. 비슷해서 올려봅니다. 요 코드를
priority_queue<edge> q;
이런식으로 쓰게되면 edge에서는 operator < 때문에 자동으로 정렬이 들어가게 됩니다. sort라던지 lower_bound라던지 이런거에서도 똑같이 적용됩니다.
struct edge안에 들어있는 edge부분은 생성해줄때 저렇게 해줍니다.
사용은 이런식으로 했구요. >>>> q.push(edge(i,j,sqrt(pow(gods[i].first-gods[j].first,2)+pow(gods[i].second-gods[j].second,2))));
얘네들이 들어간 걸 while(!q.empty) q.pop(); 이런식으로 돌리면 dist가 작은순부터 주르륵 나오게 됩니다.(pq는 큰값을 맨위로 올리죠. 근데 여기서는 operator가 dist가 클수록 작다를 표현하고 있어요)
okaybody5 6년 전
뭐 풀이를 보는데
구조체 내에서 갑자기 자기 구조체를 선언하더니 bool operator를 사용합니다.
거기까진 괜찮았는데... bool operator< 이후에 return에서는 >을 리턴합니다.
소스는 이거였는데.. 봐도봐도 몰라서 여쭤봅니다.
이것의 의미를 정확하게 가르쳐주실분 호옥시 계십니까? ㅠㅠ 제발.. bool operator뒤에 오는 연산자와 뒤의 return의 연산자가 달라지면 어떻게 되는건가요??