반복문의 경우 평소 쓰는 방법은
for (int32 i = 0; i < Actors.Num(); i++)
{
FString ActorName = Actors[i] -> GetActorNameOrLabel();
UE_LOG(LogTemp, Display, TEXT("Overlapping: %s"), *ActorName);
}
이렇게 주로 쓴다.
그러나 C++에서는 범위 기반 루프라는게 존재한다.
범위 기반 루프는 C++ 11에서 도입된 문법으로, 컨테이너의 모든 요소를 간결하고 읽기 쉬운 방식으로 반복하는데 사용된다.
컨테이너의 시작부터 끝까지 순회하며, 사용자가 인덱스를 직접 관리하거나 반복자를 명시적으로 사용할 필요가 없게 해준다.
for (declaration : range_expression)
{
// loop body
}
위 반복문을 아래와 같이 바꿀 수 있다.
for (AActor* Actor : Actors)
{
FString ActorName = Actor -> GetActorNameOrLabel();
UE_LOG(LogTemp, Display, TEXT("Overlapping: %s"), *ActorName);
}
for (auto& n : v)
{
n *= 2;
}
요소를 수정하려면 요소의 참조자를 사용한다. auto&를 사용하여 v의 각 요소에 대한 참조를 얻고, 값을 수정한다.
for (const auto& n : v)
{
std::cout << n << std::endl; // 요소를 읽기만 함
}