2014-09-02 1 views
0

두 개의 서로 다른 Eigen 컨테이너가 하나의 참조가 다른보기/데이터의 하위 집합 인 동일한 데이터를 가리키고 싶습니다.동일한 데이터의 고유 다중 참조/뷰?

그래서 이런 일이 :

Eigen::VectorXd v1(3); 
v1 << 1,2,3; 

Eigen::VectorXd v1(2); 
v2.data = &v1(0); //pseudo code 

v1(1) = 5; 

cout << v2(1) << endl; 

V2의 값은 (1) 지금 미리 5.

감사 할 위치.

답변

0

는 가능한 해결책을 찾았

Eigen::VectorXd v1(3); 
v1 << 1,2,3; 

Eigen::Map<Eigen::VectorXd> v2(v1.head(0).data(),v1.size()-1); 

//v2 prints as { 1, 2 } 

v1(1) = 9; 

//v2 now prints as { 1, 9 }  

비슷한 질문을 여기에서 찾을 : Get matrix views/blocks from a Eigen::VectorXd without copying (shared memory)

내가 그래서 것 벡터 방식의 대부분의 새로운지도 컨테이너를 사용 할 수 있습니다 보인다 나는 그것이 적당한 보충이라고 생각한다.