ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C++17 구조화된 바인딩(structured bindings)
    프로그래밍 언어/C++ 2024. 7. 23. 15:38

    변수 선언 시에 배열, 튜플, 구조체 등 복합 데이터 구조의 요소를 개별 변수에 쉽게 할당할 수 있도록 합니다.

    이를 통해 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.

     

    구조화된 바인딩의 사용 예:

     

    배열

    #include <iostream>
    #include <array>
    
    int main() {
        std::array<int, 3> arr = {1, 2, 3};
        auto [x, y, z] = arr;
    
        std::cout << "x: " << x << ", y: " << y << ", z: " << z << std::endl;
        return 0;
    }

     

     

    튜플

    #include <iostream>
    #include <tuple>
    
    std::tuple<int, double, std::string> getTuple() {
        return {1, 3.14, "Hello"};
    }
    
    int main() {
        auto [a, b, c] = getTuple();
    
        std::cout << "a: " << a << ", b: " << b << ", c: " << c << std::endl;
        return 0;
    }

     

    구조체

    #include <iostream>
    #include <string>
    
    struct Person {
        std::string name;
        int age;
    };
    
    int main() {
        Person p = {"Alice", 30};
        auto [name, age] = p;
    
        std::cout << "Name: " << name << ", Age: " << age << std::endl;
        return 0;
    }

     

    주의사항

    • 구조화된 바인딩은 배열, 튜플, 구조체와 같은 특정 데이터 구조에만 사용할 수 있습니다.
    • 분해할 때 요소의 개수와 순서가 정확히 일치해야 합니다. 그렇지 않으면 컴파일 오류가 발생합니다.

    '프로그래밍 언어 > C++' 카테고리의 다른 글

    사용자 정의 리터럴(literal)  (1) 2024.07.23
    std::tie  (1) 2024.07.23
    생성자 이니셜라이저(initializer list)  (0) 2024.07.23
    std::signal  (0) 2024.07.16
    std::bind(), std::function(), std::placeholder  (0) 2023.12.28
Designed by Tistory.