반응형
C++17에서 도입된 structured binding은 복합적인 데이터 구조를 손쉽게 풀어낼 수 있는 기능을 제공합니다. 이를 통해 배열, 튜플, 구조체 등에서 멤버를 간단하게 추출하여 사용할 수 있습니다.
Structured binding은 다음과 같은 문법을 사용합니다:
auto [변수1, 변수2, ...] = 표현식;
여기서 표현식은 풀어낼 데이터 구조를 나타내며, 변수1, 변수2 등은 구조체나 튜플의 각 요소에 대응됩니다.
예를 들어, 튜플을 사용한 structured binding은 다음과 같이 보입니다:
#include <iostream>
#include <tuple>
int main() {
std::tuple<int, double, std::string> myTuple(42, 3.14, "Hello");
auto [a, b, c] = myTuple;
std::cout << "a: " << a << ", b: " << b << ", c: " << c << std::endl;
return 0;
}
위의 코드에서 auto [a, b, c] = myTuple; 구문은 튜플 myTuple의 각 요소를 a, b, c 변수에 각각 할당합니다. 이를 통해 각 요소에 간단하게 접근할 수 있습니다.
Structured binding은 배열, 구조체 등 다양한 데이터 구조에서도 사용할 수 있으며, 코드의 가독성을 높이고 반복적인 코드를 줄이는 데 도움이 됩니다.
'프로그래밍 일반 > C++ 프로그래밍' 카테고리의 다른 글
[C++] 유용한 C++ 기능 - attribute specifier (0) | 2024.01.17 |
---|---|
[C++] 유용한 C++ 기능 - brace initialization (0) | 2024.01.17 |
[C++] 유용한 C++ 기능 - if / switch init statement (0) | 2024.01.17 |
[C++] 생성자/파괴자에서 virtual 함수를 호출 (0) | 2022.01.18 |
[C++] std::function (0) | 2020.09.10 |