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)
으로 사용하면 해결된다.
다른 언어에서도 내부 동작은 마찬가지로 생각할 수 있다.
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)
으로 사용하면 해결된다.
다른 언어에서도 내부 동작은 마찬가지로 생각할 수 있다.
댓글
댓글 쓰기