2016-09-18 1 views
0

std::list 또는 std::vector에 Eigen 배열 모음을 저장하고 싶습니다.Eigen 배열 목록 저장

내 배열의 유형이 다른 경우가 있습니다. Array<Scalar, 1, Dynamic>, 일부 Array<Scalar, Dynamic, Dynamic>, 어떤 템플릿 인수를 사용할지 알 수 없습니다. std::list.

아이디어 :

  • 모든 std::list<Array<Scalar, Dynamic, Dynamic>>Dynamic 및 저장소 캐스트, 그러나 이것은 불필요한 복사
  • boost::variant 같은 느낌?

Eigen에 대해 덜 익숙한 사람들을 위해 Dynamic-1을 의미합니다.

더 상황을 보려면 여기를 참조하십시오 What's the right type for a join_rows() function?

답변

1

ArrayXf, ArrayXXd, Array3i 등 모든 다른 유형입니다. 따라서 질문은 다음과 같습니다. 이기종 유형을 허용하는 STL 컨테이너가 있습니까? 그 짧은 대답은 다음과 같습니다. 번호 : 그 긴 대답은 : 아니오,하지만 ...

다른 대안이 있습니다. 귀하가 지적한대로 list/vectorboost::variant (모든 유형을 명시 적으로 나열) 또는 boost::any (사실상 모든 유형 허용)을 사용할 수 있습니다. 모든 사용 (개인적으로 선호하는 옵션이 아님)마다 list/vector<void*>static_cast을 사용할 수도 있습니다.

+1

죄송합니다. 결정된. –

+0

내 질문에 오타가 있었는데, 실제로 같은 스칼라 유형을 모두 사용하고 있습니다. – user357269

+0

@ user357269 동일한 스칼라 유형을 사용하더라도 '배열'은 다른 유형입니다. –