[C++] 튜플(tuple)
1. tuple
template< class... Types >
class tuple;
- 여러 type의 value를 가지는 고정된 자료구조
2. 코드로 알아보기
- web_compiler 에서 확인
#include <iostream>
#include <tuple>
using namespace std;
int main()
{
int x[2] = { 1,2 };
tuple<int, double> t2(1, 3.4);
tuple<int, double, short> t3(1, 3.4, 2);
double d = get<1>(t3);
int n = get<0>(t3);
}
#include <iostream>
using namespace std;
// primary template
template<typename ... Types>
struct xtuple
{
static constexpr int N = 0;
};
// partial specialization
template<typename T, typename ... Types>
struct xtuple<T, Types...> : xtuple<Types...>
{
using BaseType = xtuple<Types...>;
T value;
xtuple() = default; // 디폴트 생성자
xtuple(const T& v,
const Types& ... args)
: value(v), BaseType(args...) {}
static constexpr int N = BaseType::N + 1; // 1개씩 증가하면서 인자의 타입을 할 수 있음
};
int main()
{
xtuple<> t0;
xtuple<short> t1(1);
xtuple<double, short> t2(3.4, 3.5);
xtuple<int, double, short> t3(3, 3.4, 1);
}
참고
codenuri 강석민 강사 강의 내용기반으로 정리한 내용입니다.
코드누리
cppreference
This is personal diary for study documents.
Please comment if I'm wrong or missing something else 😄.
댓글남기기