2014-09-02 3 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)

Кажется, я буду иметь возможность использовать новый контейнер Map в большинстве способов вы бы вектор так Я думаю, что это будет подходящая замена.