你如何让迭代器到一行 boost::numeric::ublas::matrix<T>?

How do you get an iterator to a row of a boost::numeric::ublas::matrix<T>?

本文关键字:matrix numeric ublas lt gt boost 一行 迭代器      更新时间:2023-10-16

我正在研究矩阵乘法,我想在boost矩阵的单行上使用迭代器吗?这能做到吗?

目前,我必须获得一个迭代器并将其升级。它似乎有太多的CPU工作/未优化。。。

boost::numeric::ublas::matrix<T> aMatrix(2048, 4096);
typename boost::numeric::ublas::unbounded_array<T>::iterator it;
it = aMatrix.data().begin();
offset = row * aMatrix.size2();
advance(it, offset);

Eureka!矩阵代理。。。

boost::numeric::ublas::matrix_row<boost::numeric::ublas::matrix<T> > aRow(aMatrix, row);