pgggggggggh   3년 전

a는 vector<int>입니다.

for (i=(a.size())-1;i>=0;i--) { ~~~ } 

이렇게 쓰면 a에 크기가 0인 벡터가 주어졌을 때 에러를 뿜고,


n이라는 변수를 따로 정의해서

n=a.size();

for (i=n-1;i>=0;i--) { ~~~ }

이렇게 쓰면 에러를 뿜지 않습니다.

이 두개가 대체 무슨 차이인지요..?

clrmt   3년 전

잠재적으로 문제가 있는데, n과 i가 unsigned이거나 a.size()가 0인 경우에는 문제가 될 수 있습니다. unsigned + signed는 unsigned가 되기 때문에 a.size() - 1을 할 때 음수가 되는 대신 MAX값이 됩니다.

pgggggggggh   3년 전

헐 자료형의 문제였군요..감사합니다

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