프로그래밍 언어/C++
C++17 구조화된 바인딩(structured bindings)
규봉봉이
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;
}
주의사항
- 구조화된 바인딩은 배열, 튜플, 구조체와 같은 특정 데이터 구조에만 사용할 수 있습니다.
- 분해할 때 요소의 개수와 순서가 정확히 일치해야 합니다. 그렇지 않으면 컴파일 오류가 발생합니다.