-
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