Range-based for loop에서의 속도 차이

각종 언어에서 for문을 어떻게 쓰느냐에 따라 속도가 다른 것들이 있는 것 같다.
C++로 예를 들면,

//Classic for loop
for (int i=0; i<m.size(); ++i)
 
//Range-based for loop 1
for (auto i : m)
   
간편하게 쓰려고 위와 같이 사용하기 쉬운데,
저 위의 i는 값 복사로 인해 할당 받은 변수이다.
따라서 기존의 참조하던 방식과 비교해서 속도 차이가 벌어질 수 있다.

//Range-based for loop 2
for (auto &i : m)
으로 사용하면 해결된다.

다른 언어에서도 내부 동작은 마찬가지로 생각할 수 있다.


댓글

이 블로그의 인기 게시물

[PS] BOJ 20543번 폭탄 던지는 태영이

프로그래밍에서 실수형의 부정확성

프로그래머스 2019 윈터코딩 온라인 테스트를 보았다. (풀이)