본문 바로가기
프로그래밍 언어/C++

[C++] structure binding

by 까망 하르방 2024. 12. 31.
반응형

C++ 구조체

C와 달리 struct 키워드 없이 구조체 변수를 선언할 수 있다.

• (C++11) 멤버에 디폴츠 초기값을 지정할 수 있다.

#include <cstdio>

struct Point
{
    int x = 5;
    int y = 5;
};

int main()
{
    Point p; // struct Point p;
    printf("%d %d", p.x, p.y);
}

 

 

📌 [C++] 디폴트 파라미터(default parameter)

 

[C++] 디폴트 파라미터(default parameter)

디폴트 값이란 "기본적으로 설정되어 있는 값"을 의미한다. 함수 호출 시 파라미터(parameter)에 전달 될 아규먼트(argument)가 부족할 경우 대신해서 전달되는 값이기도 하다. ※ 아규먼트(argument, 인

zoosso.tistory.com


Structure Binding

* 구조체 또는 배열의 모든 요소의 값을 한 줄로 처리할 수 있다.

* 타입은 반드시 auto 키워드를 사용해야 한다.

* 요소 개수와 선언된 변수 개수가 동일해야 한다.

#include <cstdio>

struct Point
{
    int x = 5;
    int y = 5;
};

int main()
{
    Point p;
    
    int a = p.x;
    int b = p.y;

    auto [c, d] = p; // C++17

    int arr[3] = {100, 200, 300};
    auto [m, n, o] = arr;
}

 

 

📌 [C++] auto 키워드

 

[C++] auto 키워드

[C++] auto 키워드auto 키워드는 선언된 변수의 초기화 식을 사용하여해당 형식을 추론하도록 컴파일러에 지시이것을 타입 추론(type inference)라고 한다.#include using namespace std;int main() { auto sum = 1 +

zoosso.tistory.com


 

여러모로 한 줄로 변수를 할당할 수 있다는 점에서

알아두면 좋을 것 같다.

#include <cstdio>

struct Point
{
    int x = 5;
    int y = 5;
};

Point foo()
{
    Point p = { 100, 200 };
    return p;
}

int main()
{
    Point p;
    
    auto ret = foo();  // Point ret = foo();
    auto [x, y] = foo();  // x = p.x; y = p.y;
}
반응형

댓글