Я думаю, что вы можете использовать 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
. Выберите то, что подходит вам лучше. Прочтите это, прежде чем принимать решение: