如何使用c++;例如3D、4D的boost映射矩阵? p>我在C++的Boost库中遇到了稀疏矩阵问题。

如何使用c++;例如3D、4D的boost映射矩阵? p>我在C++的Boost库中遇到了稀疏矩阵问题。,c++,boost,matrix,3d,sparse-matrix,C++,Boost,Matrix,3d,Sparse Matrix,有类似于“boost/numeric/ublas/matrix_sparse.hpp”的东西,有3种稀疏矩阵 我想知道,例如mapped_matrix是否允许它不仅用于2D(二维),还用于3D、4D等 从文档中我可以读到映射矩阵 T-映射矩阵中存储的对象类型 F-描述存储组织的函子 A-自适应阵列的类型 因此,我认为有可能将该映射矩阵用于例如3D 你能告诉我在哪里可以找到一些示例代码,例如3D、4D->如何使用它吗 我将文档中的示例代码修改为使用map\u std: #include <

有类似于“boost/numeric/ublas/matrix_sparse.hpp”的东西,有3种稀疏矩阵

我想知道,例如
mapped_matrix
是否允许它不仅用于2D(二维),还用于3D、4D等

从文档中我可以读到
映射矩阵

  • T
    -映射矩阵中存储的对象类型
  • F
    -描述存储组织的函子
  • A
    -自适应阵列的类型
因此,我认为有可能将该映射矩阵用于例如3D

你能告诉我在哪里可以找到一些示例代码,例如3D、4D->如何使用它吗

我将文档中的示例代码修改为使用
map\u std

#include <boost/numeric/ublas/matrix_sparse.hpp>
#include <boost/numeric/ublas/io.hpp>

int main () {
    using namespace boost::numeric::ublas;
    mapped_matrix<double, row_major, map_std<std::size_t, double>> m (3, 3, 3 * 3);
    for (unsigned i = 0; i < m.size1 (); ++ i)
        for (unsigned j = 0; j < m.size2 (); ++ j)
            m (i, j) = 3 * i + j;
    std::cout << m << std::endl;
}
#包括
#包括
int main(){
使用名称空间boost::numeric::ublas;
映射矩阵m(3,3,3*3);
对于(无符号i=0;i