disdong123   3년 전

(int)vector.size()로 하면 정답처리가 되고 vector.size()로 하면 런타임 에러가 발생합니다. 이 둘의 차이가 있는건가요?

clrmt   3년 전

10 - v.size()가 음수가 될 가능성이 있는지를 봐 주세요.

10 - v.size()는 unsigned int로, 음수가 되는 대신 양의 MAX값에 가깝게 됩니다.

disdong123   3년 전

음... 지금 보니까 음수가 될 수 있네요..

근데 10-(int)v.size() 역시 음수가 될 수 있는거 아닌가요??..

djm03178   3년 전

음수가 되면 정상 작동합니다. 하지만, 10 - v.size()는 10쪽이 오히려 unsigned int로 변환되어 unsigned int끼리의 뺄셈이 수행되기 때문에 음수가 되지 못하고 오버플로로 매우 큰 양수가 됩니다.

disdong123   3년 전

아아! 감사합니다..

댓글을 작성하려면 로그인해야 합니다.