在多维数组进行初始化及内存释放的时候,玩过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,反之,需要读者自行解决
上一篇:二元一次函数图像怎么画
下一篇:怎么做鱼汤好吃呢?