我的问题与 Boost.MultiArray 类有关。我了解如何将multi_array
对象转换为array_view
对象,如以下代码所示:
int my_row = 5;
int my_col = 7;
boost::multi_array<int,2> my_matrix(boost::extents[my_row][my_col]);
int *b = new int [my_row*my_col];
int loop = 0;
for(int i=0; i<my_row; i++)
{
for(int j=0; j<my_col; j++)
{
loop = loop+1;
my_matrix[i][j]=loop;
}
}
std::cout<<"The matrix"<<std::endl;
for (int i=0; i<my_row; i++)
{
for(int j=0; j<my_col; j++)
std::cout<<my_matrix[i][j]<<" ";
std::cout<<std::endl;
}
int new_row = 3;
int new_col = 4;
boost::multi_array<int,2>::array_view<2>::type my_view =
my_matrix[boost::indices
[boost::multi_array<int,2>::index_range(0,new_row,1)]
[boost::multi_array<int,2>::index_range(0,new_col,1)]
];
std::cout<<"The view"<<std::endl;
for (int i=0; i<new_row; i++)
{
for(int j=0; j<new_col; j++)
std::cout<<my_view[i][j]<<" ";
std::cout<<std::endl;
}
我的问题是,由于array_view
对象与对象非常相似,multi_array
有没有办法将array_view
对象转换为multi_array
对象?