범위 기반 for문은 for-each 루프라고도 하며 배열 또는 컨테이너와 같은 범위의 요소를 반복할 때 간결하고 읽기 쉽게 만들어 준다.
범위 기반 for문 예시
int arr[] = {1, 2, 3, 4, 5};
// arr의 전체 요소에 접근해서 n이 읽어 들인다.
for (int n : arr)
{
std::cout << n << std::endl;
}
std::string str = "Hello, world!";
// str의 문자 하나하나를 c에서 읽어 들인다.
for (char c : str)
{
std::cout << c << " ";
}
위와 같이 사용하지만 auto를 사용하면 자료형을 생각하지 않고 쓸 수 있다.
std::string str = "Hello, world!";
for (auto c : str)
{
std::cout << c << " ";
}
범위 기반 for문의 지역 변수 n은 읽기 전용으로 사용 되지만 참조자를 사용하면 원본 값을 바꿀 수 있다.
int main()
{
int aList[3] = {10,20,30};
for (auto n : aList)
{
n = 0;
}
for (auto n : aList)
{
std::cout << "참조자 X : " << n << std::endl;
}
std::cout << std::endl;
for (auto &n : aList)
{
n = 0;
}
for (auto n : aList)
{
std::cout << "참조자 O : " << n << std::endl;
}
}
'C, C++' 카테고리의 다른 글
| 26. 클래스 (0) | 2023.06.17 |
|---|---|
| 25. 함수 다중정의 (OverLoading) (0) | 2023.06.16 |
| 23. 참조자 (0) | 2023.06.14 |
| 22. c++ 메모리 동적할당 (0) | 2023.06.13 |
| 21. auto 자료형 (0) | 2023.06.12 |