2014-08-28 2 views
0

여러 행과 열이있는 데이터 테이블의 정보를 저장하려고합니다. 각 열은 런타임에 만 알 수있는 다른 유형 (int, double, std::string 등)을 포함합니다.C++에서 boost :: variant의 2 차원 벡터

2-d vectorboost::variant이 가장 좋은 방법입니까, 아니면이를 수행하는 데 더 나은 저장 메커니즘이 있습니까?

+2

정확히 무엇을 저장하려고했는지 보여주는 것이 도움이 될 것입니다. 하나의 행을 저장하고 데이터 유형이 다른 여러 열이있는 경우,'boost :: tuple'이 더 나은 선택 일 수 있습니다. – mstrthealias

답변

2

귀하의 질문에 귀하가 실제로 찾고있는 것이 분명하지 않습니다.

  • 당신이 유형 모든 행에 대해 동일, 열마다 서로 다른 유형이 가정 : 대답은 여러 가지 요인에 따라 달라집니다?

  • 형식이 컴파일시 또는 런타임에만 알고 있습니까? 유형의 간단한 경우

컴파일 타임에 알려진 모든 행에 대해 동일한되는 이유는 단순히 열 또는 std::tuple을 표현하기 위해 사용자 정의 클래스를 사용하고?

유형이 서로 다른 열 사이에 다른 경우, boost::any과 같은 전능적인 유형을 사용해야합니다. 런타임시에만 유형을 알고 있어야하는 경우 가장 쉬운 솔루션 일 수도 있습니다.