我想知道是否有可能获得Boost uBLAS矩阵的单个元素的地址?Boost uBLAS矩阵参考
也就是说
boost::numeric::ublas::matrix<char> bob(3,3);
some_function(&bob[2][2]);
现在,当然第二行不行......但我想它。
有什么想法?
谢谢!
我想知道是否有可能获得Boost uBLAS矩阵的单个元素的地址?Boost uBLAS矩阵参考
也就是说
boost::numeric::ublas::matrix<char> bob(3,3);
some_function(&bob[2][2]);
现在,当然第二行不行......但我想它。
有什么想法?
谢谢!
岂不使用以下操作员的返回值的地址是简单的工作呢?并独立于矩阵布局?
reference operator() (size_type i, size_type j)
例如:
some_function(&bob(2,2));
默认情况下,矩阵的内部表示是一个主要的1D数组。
some_function(&bob.data()[i*ncol+j]
将
默认情况下的uBLAS? Boost uBLAS规范的哪一部分表明这会起作用? – Richard 2012-04-19 04:55:26
m.data()返回对底层密集存储的引用。 http://www.boost.org/doc/libs/1_46_0/libs/numeric/ublas/doc/container_concept.htm#matrix。至于存储,有两种类型:row_major或column_major,默认是row_major。我忘了它在哪里指定。我曾经用ublas矩阵称为lapack例程,就我而言,通过m.data()函数获得1D数组的指针。 – pem 2012-05-04 08:50:58
我不知道我关注你吗?你能更明确还是更具说明性?对不起:-( – Richard 2012-04-19 04:56:09
新增答案示例。 – Anonymous 2012-04-19 07:01:07
修正问题中有问题的索引。 – Richard 2012-04-19 15:08:51