게임 개발에서 i++이 아니라 ++i를 사용하는 이유
게임 개발을 하다 보면 반복문을 돌 때 i++이 아닌 ++i로 작성한 코드를 많이 보게 될 것이다.
그 이유는 아래와 같다.
즉 i++은 깊은 복사, ++i는 레퍼런스 반환.
i++일 때는 복사 비용이 증가하기 때문에 해당 이터레이터의 규모가 클수록 성능 저하를 일으킬 수 있다.
실제 코드로 살펴보자. 기본 자료형의 연산자 오버로딩은 코드를 볼수가 없어서 stl vector 연산자 오버로딩 코드를 가져왔다.
_Inc() 함수는 increase라서 값 더해주는 함수라고 생각해두고, 코드만 보면 전위는 레퍼런스 연산자로 그대로 객체에 값을 더해주고, 후위는 임시 객체를 만들어서 주는걸 볼 수 있다!!
사실 int와 같은 기본 자료형은 ++i를 안써도 최적화가 되어 있다.
습관은 중요하니 ++i를 하는 버릇을 들이자!
출처 : ChatGPT
'공부 > C, C++' 카테고리의 다른 글
[c++기초] #include <iostream> 헤더파일을 알고 싶었다. (0) | 2023.05.09 |
---|---|
[WinAPI] 글자(텍스트) 출력, 글자 색 변경, 글자 배경색 투명하게 (0) | 2022.11.18 |
[C++] 싱글톤 패턴(2) - 데이터 영역에 객체 생성 방식 (0) | 2022.09.08 |
[C++] 싱글톤 패턴(1) - 동적 할당 방식 (0) | 2022.09.08 |
[C/C++] Class (3) - 레퍼런스 변수 (0) | 2022.03.22 |
댓글