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

C++ std::tuple

by comflex 2022. 2. 19.
728x90
반응형

std::tuple

pair의 확장으로 두개 이상의 데이터 모임을 관리할 때 사용하며 주로 함수의 반환 시 2개 이상의 값을 리턴할 때 편리하다.

목차

  • make_tuple
  • get
  • tie
  • swap

make_tuple

튜플을 생성합니다.

get

튜플에서 데이터를 가져온다.
0번째 요소의 값을 얻기위해 get<0>(tuple_name) 형식을 사용한다.

tie

튜플 데이터 각각을 다른 변수에 저장한다.

swap

두 튜플의 값을 바꾼다

  • 코드
#include <tuple>
#include <iostream>

using namespace std;

int main() {

    tuple <int, double, char> tu;
    int iNum;
    double dNum;
    char cCh;

    tu = make_tuple(1, 2.0, 'c');

    iNum = get<0>(tu);
    dNum = get<1>(tu);
    cCh = get<2>(tu);

    cout << "iNum : " << iNum << ", dNum : " << dNum << ", cCh : " << cCh << endl;

    auto tu2 = make_tuple(4, 5.0, 'f');

    tie(iNum, dNum, cCh) = tu2;

    cout << "iNum : " << iNum << ", dNum : " << dNum << ", cCh : " << cCh << endl;

}
  • 출력
iNum : 1, dNum : 2, cCh : c
iNum : 4, dNum : 5, cCh : f
  • 코드
#include <iostream>     
#include <tuple>       

using namespace std;

int main ()
{
  tuple<int,char> a (1,'a');
  tuple<int,char> b (2,'b');

  a.swap(b);

  cout << "a contains: " << get<0>(a) << " and " << get<1>(a) << endl;
  cout << "b contains: " << get<0>(b) << " and " << get<1>(b) << endl;

  return 0;
}
  • 출력
a contains: 2 and b
b contains: 1 and a
728x90
반응형

'프로그래밍 > C++' 카테고리의 다른 글

C++ std::sort  (2) 2023.01.04
C++ enum 열거형  (1) 2023.01.04
C++ std::begin, std::end, iterator  (0) 2022.02.19
C++ std::numeric_limits  (0) 2022.02.19
C++ std::pair  (0) 2022.02.19