공부/C, C++
게임 개발에서 i++이 아니라 ++i를 사용하는 이유
김샤랑
2023. 11. 2. 02:42
게임 개발에서 i++이 아니라 ++i를 사용하는 이유
게임 개발을 하다 보면 반복문을 돌 때 i++이 아닌 ++i로 작성한 코드를 많이 보게 될 것이다.
그 이유는 아래와 같다.
즉 i++은 깊은 복사, ++i는 레퍼런스 반환.
i++일 때는 복사 비용이 증가하기 때문에 해당 이터레이터의 규모가 클수록 성능 저하를 일으킬 수 있다.
실제 코드로 살펴보자. 기본 자료형의 연산자 오버로딩은 코드를 볼수가 없어서 stl vector 연산자 오버로딩 코드를 가져왔다.
_Inc() 함수는 increase라서 값 더해주는 함수라고 생각해두고, 코드만 보면 전위는 레퍼런스 연산자로 그대로 객체에 값을 더해주고, 후위는 임시 객체를 만들어서 주는걸 볼 수 있다!!
사실 int와 같은 기본 자료형은 ++i를 안써도 최적화가 되어 있다.
습관은 중요하니 ++i를 하는 버릇을 들이자!
출처 : ChatGPT