c++ - 如何让迭代器指向 boost::numeric::ublas::matrix<T> 的一行?

标签 c++ boost ublas

我正在研究矩阵乘法,我想要一个遍历 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 ! Matrix proxies ...

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

关于c++ - 如何让迭代器指向 boost::numeric::ublas::matrix<T> 的一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9861271/

相关文章:

c++ - 如何 std::find 使用比较对象?

c++ - 我的 CListCtrl 中的选定项目显示省略号,尽管有足够的空间!

c++ - 为什么在对稀疏矩阵的元素进行迭代时会出现 numeric::ublas::bad_index 错误?

c++ - 为什么 uBLAS 没有 `operator*(matrix, vector)` ?

c++ - 将无序映射写入共享内存不起作用

c++ - 类型安全的字符串参数

c++ - 为什么我可以像标量矩阵一样初始化常规的 Boost 矩阵?

c++ - 有没有办法恢复嵌入在 boost mpl 引用中的原始模板模板类?

python - 如何使用 boost/python 从 C++ 导入 .py 文件中的类?

c++ - 使用 std::max boost ublas 多精度模板解析失败