{
// C스타일 배열, 기존 출력 방법
int nums[5] = { 1, 2, 3, 4, 5 };
for (int i = 0; i < 5; ++i)
{
cout << nums[i] << endl;
}
// Range based for
for (int num : nums)
{
cout << num << endl;
}
}
int nums[5] = { 1, 2, 3, 4, 5 };
로 C 스타일 배열을 선언하고 초기화합니다.{
// C++ 스타일 배열, 기존 출력 방법
array<int, 5> nums = { 1, 2, 3, 4, 5 };
for (int i = 0; i < 5; ++i)
{
cout << nums[i] << endl;
}
// Range based for
for (int num : nums)
{
cout << num << endl;
}
}
array<int, 5> nums = { 1, 2, 3, 4, 5 };
로 std::array
를 선언하고 초기화합니다.{
Person persons[]{
Person{70.f, 181.f},
Person{56.2f, 167.3f}
};
// 순회하면서 변경
for (int i = 0; i < 2; ++i)
{
persons[i].weight = 0.f;
}
for (Person person : persons)
{
cout << person.weight << " " << person.height << endl;
}
}
Person
구조체 배열을 선언하고 초기화합니다.weight
값을 0으로 변경합니다.{
Person persons[]{
Person{70.f, 181.f},
Person{56.2f, 167.3f}
};
// 순회하면서 변경
for (Person person : persons)
{
person.weight = 0.f;
}
// 변경 되지 않음
for (Person person : persons)
{
cout << person.weight << " " << person.height << endl;
}
}
Person
구조체 배열을 선언하고 초기화합니다.weight
값을 0으로 변경합니다. 그러나 값이 변경되지 않습니다.{
Person persons[]{
Person{70.f, 181.f},
Person{56.2f, 167.3f}
};
// 순회하면서 변경, 참조(레퍼런스)
for (Person& person : persons)
{
person.weight = 0.f;
}
// 변경 됨
for (Person person : persons)
{
cout << person.weight << " " << person.height << endl;
}
}
Person
구조체 배열을 선언하고 초기화합니다.weight
값을 0으로 변경합니다.{
Person persons[]{
Person{70.f, 181.f},
Person{56.2f, 167.3f}
};
for (int i = 0; i < 2; ++i)
{
cout << &persons[i] << endl;
}
cout << endl;
for (Person person : persons)
{
cout << &person << endl; // 주소 값이 다르다
}
cout << endl;
for (Person& person : persons)
{
cout << &person << endl;
}
}
Person
구조체 배열을 선언하고 초기화합니다.{
int nums[3] = { 1, 2, 3 };
for (int num : nums)
{
num = 0; // 안 바뀜
}
for (int num : nums)
{
cout << num << endl;
}
for (int& num : nums) // 참조(레퍼런스)
{
num = 0; // 바뀜
}
for (int num : nums)
{
cout << num << endl;
}
}
int nums[3] = { 1, 2, 3 };
로 배열을 선언하고 초기화합니다.범위 기반 for 문은 C++11에서 도입된 편리한 문법으로, 배열이나 컨테이너의 모든 요소를 순회하는 데 유용합니다. 범위 기반 for 문에서 복사본이 사용되면 원본 값이 변경되지 않으므로, 원본을 변경하려면 참조를 사용해야 합니다. C++ 스타일 배열(std::array
)과 C 스타일 배열 모두 범위 기반 for 문을 사용할 수 있습니다. 범위 기반 for 문은 가독성을 높이고 코드 작성을 단순화하는 데 도움이 됩니다.