ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C++] Tuple (복수의 값 반환)
    C++ 2019. 8. 22. 17:51

    Tuple

    함수는 일반적으로 하나의 반환값을 반환하는데, tuple이라는 클래스를 이용해서 복수의 값을 반환할 수 있다.

     

    예) 복수의 값을 튜플로 반환

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <iostream>
    #include <tuple>
     
    using namespace std;
     
    tuple<intdouble> getTuple()
    {
        int a = 10;
        double d = 3.14;
        return make_tuple(a, d);
    }
     
    int main()
    {
        tuple<intdouble> my_tp = getTuple();
        cout << get<0>(my_tp) << endl;
        cout << get<1>(my_tp) << endl;
     
        return 0;
    }
    cs


    반환형, 반환받는 변수의 타입을 같은 형태의 튜플로 설정하고,

    tuple 라이브러리에 있는 make_tuple() 함수를 사용하여 tuple을 생성해서 반환한다.

     

     

    C++ 17에서의 튜플 사용

    C++ 17에서는 더 간단한 형태로 tuple을 반환받을 수 있다.

    솔루션 속성

     

    C++ 표준을 C++ 17로 변경

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <iostream>
    #include <tuple>
     
    using namespace std;
     
    tuple<intdouble> getTuple()
    {
        int a = 10;
        double d = 3.14;
        return make_tuple(a, d);
    }
     
    int main()
    {
        auto[a, d] = getTuple();
        cout << a << endl;
        cout << d << endl;
     
        return 0;
    }
    cs

     

    값을 반환받는 변수도 똑같이 tuple의 형태로 선언할 필요 없이,

    auto[a, b]라는 간단한 형태로 받아 a, b로 간단하게 사용할 수 있다.

     

     

     

     

     

    참고자료

    https://www.inflearn.com/course/following-c-plus/lecture/14720 (인프런, 홍정모의 따라배우는 C++(7.5 다양한 반환 값들))

     

    'C++' 카테고리의 다른 글

    [C++] this 포인터  (0) 2019.08.29
    [C++] 함수 포인터  (0) 2019.08.27
    [C++] const 위치에 따른 포인터의 의미  (0) 2019.07.18
    [C++] 참조 변수(Reference variable)  (0) 2019.07.18
    [C++] 메모리와 동적할당(new, delete)  (0) 2019.07.17
Designed by Tistory.