5개의 댓글이 있습니다.
-
-
Toivoa -
for문에서와 같이 결과값을 다시 사용하지 않는 경우는 보통 컴파일러 최적화가 들어가서 둘다 똑같은 코드가 생성됩니다.
built-in type 같은 경우는 별 차이 없는데, stl iterator 같은 경우는 postfix ++ opreator는 원래 값을 임시 변수에 저장한 후에 iterator를 옮기고, 임시 변수를 리턴하는 식으로 구현됩니다. (http://www.cplusplus.com/reference/iterator/iterator/?kw=iterator example 참조하시면 됩니다.)
물론 컴파일러가 알아서 최적화해주기는 하지만, 꼭 필요하지 않은 경우에는 prefix ++ operator를 사용하시는 것이 좋습니다.
9년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
jeonaire
안녕하세요,
컴공입문클래스를 조금 들어본 대학생입니다-
알고리즘 문제 해결 전략 책이나 풀이를 볼때
for statement를 쓸 때
:
for (int i = 0; i < N; ++i) << ++i가 쓰이는데
제가 학교에서 클래스를 들었을때에는
for (int i = 0; i < N; i++) << i++로만 쓰였습니다.
++i 와 i++의 차이는
전자는 i에 1이 먼저 더해지는거고 (i + 1 = i)
후자는 1을 나중에 더하는거라고 대충 알고있는데 (i = i + 1)
이렇게 for statement에서 ++i가 쓰이는 경우는 왜 그런가요?
각 각 장단점이있나요?
ㅠㅠ제가 어렸을때 미국에와서 한국말이 좀 서툽니다. 혹시 이해 어려운 부분 있으시면 말해주세요. 감사합니다!
9년 전