[c++] 범위 기반 for 루프와 데이터 타입

C++는 C 언어에서 많은 요소를 계승하면서도, 새로운 기능들을 추가하여 더욱 강력한 프로그래밍 언어로 발전하고 있습니다. 그 중 하나가 “범위 기반 for 루프(range-based for loop)”입니다. 또한 C++11부터는 var 키워드를 사용하여 데이터 형식을 추론할 수 있게 되었습니다.

범위 기반 for 루프

이전의 for 루프에서는 컨테이너의 크기나 인덱스 값 등을 직접 다루어야 했지만, C++11부터 도입된 범위 기반 for 루프는 이러한 불편함을 해소했습니다. 범위 기반 for 루프를 사용하면 컨테이너의 요소에 쉽게 접근할 수 있으며, 루프 내에서 요소의 복사본이 아닌 참조를 사용할 수 있습니다. 예를 들어, 다음은 벡터를 이용한 범위 기반 for 루프의 간단한 예제입니다.

#include <iostream>
#include <vector>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    for (int number : numbers) {
        std::cout << number << " ";
    }
    return 0;
}

위 코드는 numbers 벡터의 각 요소를 순회하면서 출력하는 간단한 프로그램입니다. 범위 기반 for 루프를 사용하면 컨테이너의 크기나 인덱스를 사용하지 않고도 편리하게 요소를 다룰 수 있습니다.

var 키워드와 데이터 형식 추론

C++11부터는 var 키워드를 사용하여 변수의 데이터 타입을 추론할 수 있게 되었습니다. 이러한 기능은 복잡한 데이터 타입을 사용할 때 코드의 가독성을 높여줄 뿐만 아니라, 변수의 타입을 직접 명시하는 번거로움을 줄여줍니다.

#include <iostream>
#include <vector>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    for (auto number : numbers) {
        std::cout << number << " ";
    }
    return 0;
}

위의 코드에서 auto 키워드를 사용하여 변수의 데이터 타입을 추론합니다. 이는 int로 추론됩니다. 따라서 auto 키워드를 사용하면 범위 기반 for 루프에서 컨테이너의 요소를 순회할 때, 데이터 타입을 직접 명시할 필요가 없어집니다.

결론

C++의 범위 기반 for 루프와 var 키워드는 코드를 더 간결하고 가독성이 높게 만들어줍니다. 이러한 기능들을 적극적으로 활용하여, 더욱 효율적이고 편리한 C++ 프로그래밍을 경험해보시기를 권장합니다.

참고 자료