방법 1과 방법 2의 장점/단점은 무엇입니까?루프에 대한 재사용 변수의 위치
방법 1 :
for (std::vector<MyObject*>::iterator it = my_objects.begin(); it != my_objects.end(); ++it)
{
Vector2 temp_position = (*it)->GetPosition();
// do something...
}
방법 2 : temp_position
변수는 루프를 통해 각 시간을 다시 할 필요가 없습니다 때문에
Vector2 temp_position; // I do NOT need scope for this object outside of the loop.
for (std::vector<MyObject*>::iterator it = my_objects.begin(); it != my_objects.end(); ++it)
{
temp_position = (*it)->GetPosition();
// do something...
}
이론적, 방법 2 방법 1보다 더 나은 성능을 것입니다 . 그러나, 나는 컴파일러가 그것들을 동일하게 최적화 할 것을 읽었던 것을 기억한다.
temp_position
에는 불필요한 범위가 없다는 점에서 방법 1이 더 좋습니다.
조숙 한 최적화는 모든 악의 뿌리입니다. –
가능한 한 읽을 수 있도록 코드를 작성하십시오. 당신의 임무는 알고리즘을 정확하게하는 것입니다. 컴파일러 작업은 최적화를 수행하는 것입니다. 당신이 당신의 일을하고 그것의 일을하게한다면 당신은 모두 행복 할 것입니다. –