C++ boost::多_数组索引到内存偏移量转换

C++ boost::多_数组索引到内存偏移量转换,c++,boost,C++,Boost,我有一个三维的boost::multi_array对象。我想将原点的绝对偏移量转换为多维索引,反之亦然。有没有一种简单的方法可以使用boost的内置功能实现这一点,或者我需要根据阵列的形状和步幅自己计算它?当然,您可以使用一些库功能 对于偏移量,您可以很容易地使用指针算术算法: size_t offset = &ma[1][2][3] - ma.data(); std::cout << "Offset of ma[1][2][3]: " << offset <

我有一个三维的
boost::multi_array
对象。我想将
原点的绝对偏移量
转换为多维索引,反之亦然。有没有一种简单的方法可以使用boost的内置功能实现这一点,或者我需要根据阵列的形状和步幅自己计算它?

当然,您可以使用一些库功能

对于偏移量,您可以很容易地使用指针算术算法:

size_t offset = &ma[1][2][3] - ma.data();
std::cout << "Offset of ma[1][2][3]: " << offset << "\n";
size_t offset=&ma[1][2][3]-ma.data();

当然你可以使用一些图书馆设施

对于偏移量,您可以很容易地使用指针算术算法:

size_t offset = &ma[1][2][3] - ma.data();
std::cout << "Offset of ma[1][2][3]: " << offset << "\n";
size_t offset=&ma[1][2][3]-ma.data();

std::难道我没有想到MATLAB的
ind2sub
sub2ind
函数会隐藏在某个地方吗。但是我的期望似乎太高了:)我期望像MATLAB的
ind2sub
sub2ind
函数一样的东西,它们隐藏在某处。但我的期望似乎太高了:)