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