多语言展示
当前在线:1765今日阅读:26今日分享:39

多维数组转换为一维数组存储

在多维数组进行初始化及内存释放的时候,玩过C++的人都知道,过程相当麻烦,这里介绍一种以一维数组的方式进行存储多维数组,并由此引出不定维数组的存储。
工具/原料

Visual Studio 2010

方法/步骤
1

对于多维数组g[i0][i1]...[in-1],每一维的维度依次为w0,w1....wn-1;

2

计算需要的一维数组大小,wc=w0*w1....wn-1;定义需要存储的一维数组s[wc];

3

定义一个一维数组wp[n],分别计算每一个wp[i],计算值为wp[i]=w(i+1)*w(i+2)*....*wn-1, 其中wn-1=1;

4

最后也是最重要的就是如何把g[i0][i1]...[in-1]对应到s[k]中去,即求出[i0][i1]...[in-1]与k的对应关系;对应关系如下:k=wp[0]*i0+wp[1]*i1+...+wp[n-1]*in-1;

注意事项
1

这里只是给出了一种计算方式,并没有给出相关的代码,此方法可大大简化C++中初始化的操作

2

该方法可容易的实现不定项的多维数组转换

3

该方法只给出了如何将[i0][i1]...[in-1]转换为k,反之,需要读者自行解决

推荐信息