c ++ и ublas: создание массива c_vectors с разными размерами - PullRequest
0 голосов
/ 20 сентября 2011

Есть ли способ создать массив c_vectors ublas с разными размерами?

Например

array[0] вернет ublas::c_vector< double, 3 > (размер = 3) и array[0](0) получит доступ к своему первому элементу

array[1] вернет ublas::c_vector< double, 7 > (размер = 7), а array[1](0) получит доступ к своему первому элементу

и т.д.

1 Ответ

0 голосов
/ 20 сентября 2011

Я думаю, что вы можете использовать std::vector<boost::any>, а затем вставить ublas::c_vector разных размеров в него.

std::vector<boost::any> v;
v.push_back(ublas::c_vector<double,3>());
v.push_back(ublas::c_vector<double,7>());
v.push_back(ublas::c_vector<double,9>());
//etc

Элементы должны быть приведены к соответствующим типам, используя boost::any_cast, который является пользовательским ключевым словом, приведенным для извлечения значения данного типа из boost::any.

Вы также можете попробовать boost::variant. Выберите то, что подходит вам лучше. Прочтите это, прежде чем принимать решение:

...