더북(TheBook)

1.3.2 연습 문제 2: 빠르고 범용적인 데이터 저장 컨테이너 만들기

이번 연습 문제에서는 다양한 타입의 데이터 여러 개를 인자로 받아 공통 타입으로 변환하는 함수를 만들어보겠습니다. 이 함수가 반환하는 컨테이너는 모든 인자를 공통 타입으로 변환하여 저장하며, 전체 원소를 빠르게 순회할 수 있어야 합니다.

  1. 먼저 필요한 헤더 파일을 포함합니다.

#include <array>
#include <iostream>
#include <type_traits>

  2. 컨테이너를 생성하는 build_array() 함수를 선언하겠습니다. 이 함수는 빠른 원소 순회를 보장하는 std::array를 반환합니다. 그리고 임의 개수의 매개변수를 허용하기 위해 가변 템플릿을 사용합니다.

template<typename ... Args>
std::array<?,?> build_array(Args&&... args)

반환된 컨테이너는 빠르게 순회할 수 있어야 한다는 조건이 있으므로 배열 또는 벡터(vector)를 사용할 수 있습니다. 이 예제에서는 컴파일 시간에 함수의 인자 개수로부터 원소 개수를 유추할 수 있으므로 std::array를 사용합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.