C, C++ & Linux/C++

[C++] STL - pair, tuple

서노리 2022. 7. 1. 02:25
반응형

pair

pair는 지정한 2개의 타입의 데이터를 저장하는데 사용한다.

이를 통해 서로 연관된 2개의 데이터를 한 쌍으로 묶어서 다룰 수 있다.

 

pair는 <utility> 헤더파일에 존재하며

<algorithm>과 <vector> 헤더파일에 <utility> 가 포함되기 때문에 셋 중 하나를 사용할 수 있다.

 

make_pair() 함수를 통해 pair 객체를 만들 수 있고 각각 first와 second를 통해 첫번째, 두번째 데이터에 접근할 수 있다.

#include <iostream>
#include <algorithm>
#include <vector>
#include <utility>

using namespace std;

int main(){
    pair<int, int> p;
    p = make_pair(10, 20);
    cout << p.first << ' ' << p.second << endl;
}

 


tuple

tuple은 pair와 비슷하지만 2개보다 더 많은 데이터를 묶을 수 있다.

 

tuple은 <tuple> 헤더파일에 존재한다.

 

make_tuple() 함수를 통해 tuple 객체를 만들 수 있고 get<index>(tuple)을 통해 각 데이터에 접근 가능하다.

 

※ tuple과 같이 쓰이는 함수

  • make_tuple() : 튜플 객체 생성
  • get<index>(tuple) : 튜플 각 데이터에 접근
  • tie() : 튜플의 값을 가져와 각각 따로 분류
  • tuple_cat : 튜플 병합
#include <iostream>
#include <tuple>
using namespace std;

int main(){
    tuple<int, int, int> t = make_tuple(10, 20, 30);
    int n = 3;
    cout << get<0>(t) << ' ';
    cout << get<1>(t) << ' ';
    cout << get<2>(t) << ' ';

    int x, y, z;
    tie(x, y, z) = t;
    
    cout << x;
}

 

반응형

'C, C++ & Linux > C++' 카테고리의 다른 글

[C++] 벡터 정렬, 중복제거 (sort, unique, erase)  (0) 2022.09.04
[C++] STL - next_permutation  (0) 2022.08.01
[C++] STL - list  (0) 2022.06.29
[C++] STL - deque  (0) 2022.06.29
[C++] STL - vector  (0) 2022.06.29