有没有办法创建一个不同大小的 ublas c_vectors 数组?
例如
array[0]
将返回ublas::c_vector< double, 3 >
(size=3) 并array[0](0)
访问其第一个元素
array[1]
将返回ublas::c_vector< double, 7 >
(size=7) 并array[1](0)
访问其第一个元素
ETC
我认为您可以使用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
。选择更适合您需要的任何东西。在做出决定之前阅读此内容: