2023. 6. 27. 22:14, 알고리즘/BOJ
n<(int)pq.size() 형태로 코드를 작성하는 것에서 (int)를 쓰는것이 좌측은 signed int, 우측은 unsigned int 이기 때문에 비교해 주는데 있어서 둘다 unsigned int로 맞추어 주기 위해서 캐스팅을 해주는 것으로 알 고 있었으며, 이번에 다시 접했기 떄문에 이에 대해서 다시 한번 더 검색해보았다.
이와 같은 힌트를 얻을 수 있었고, 일부러 (int)를 제외하고 한번 제출해보았다. 물론 예상대로 통과는 하였고 내부로 들어가서 메세지를 확인해보니,
Main.cc: In function ‘int main()’:
Main.cc:16:13: warning: comparison of integer expressions of different signedness:
‘int’ and ‘std::priority_queue<int, std::vector<int>,
std::greater<void> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
16 | if(n<pq.size()) pq.pop();/*원래 n<(int)pq.size() 형태로 작성하는것이
| ~^~~~~~~~~~ 정석이지만 이렇게 제출해봄/*
|
이와 같은 내용을 확인해볼 수 있었다.
이처럼 결국 좌측과 우측의 타입을 맞추어 주기 위해서 (int) 를 통해서 캐스팅을 하며, 이거 없어도 물론 제출해서 통과할 수 있지만,
정확하게 작성하기 위해서 (int)를 사용하는 습관을 들이도록 하자.
'알고리즘 > BOJ' 카테고리의 다른 글
Comments, Trackbacks