본문 바로가기

C++

(C++) - Tuple 자료구조

반응형

Tuple

기존 pair가 두 개의 자료만 담을 수 있다면 tuple은 pair의 확장으로 두 개를 초과하여 한번에 담을 수 있는 자료구조입니다.

 

 

Header

#include <tuple>

 

내장함수

  • make_tuple : 튜플 생성 함수
  • get : 튜플로부터 값 하나를 가져오는 함수
  • swap : 연산자 튜플의 값을 다른 변수에 전달하는 함수
  • tie : 한번에 tie안에 있는 인수들을 tuple로부터 차례대로 담을 수 있는 함수

 

Code

#include <tuple>
#include <iostream>
using namespace std;
int main(){
    tuple <long long, int, double, char> t;
    long long a;
    int b;
    double c;
    char d;

    t = make_tuple(123'456'789'123'456'789, 123456721, 2.0, 'A');
    tie(a,b,c,d) = t;
    //get -> tie와 다르게 한 번에 한개씩 tuple 원소를 뽑아옴
    a = get<0>(t);
    b = get<1>(t);
    c = get<2>(t);
    d = get<3>(t);

    cout << "a, b, c, d : " << a << ' ' << b << ' ' << c << ' ' << d << '\n';

    t = {223'456'789'123'456'789, 223456721, -2.0, 'C'}; //C++ 17 이후부터 가능
    auto [e,f,g,h] = t;
    cout << "e, f, g, h : " << e << ' ' << f << ' ' << g << ' ' << h << '\n';
}