C++中实现动态多维数组模板的分析-04 - 悲催的科学匠人 - 冷水's blog
C++中实现动态多维数组模板的分析-04
冷水
posted @ 2010年12月17日 00:52
in C++
, 1347 阅读
对于一维化存储的数据,实现多维编号访问,索引是必须的。
考虑2D数组 array[0..I-1][0..J-1],为了方便采用FORTRAN的数组元素排列顺序,即
for (j=0;j<J;j++) for (i=0;i<I;i++)
那么一维编号
为了避免乘法,我们可以预先计算好。则有一维编号计算公式为
代价是我们必须事先计算好个。
再考虑3D数组 array[0..I-1][0..J-1][0..K-1],其一维编号计算公式为
同理,令和,上式可写为
这个方法可以推导到任意维数组。即对于维数组,设其第维范围是,我们事先计算好偏移
此外对于第一维
则元素的一维编号计算格式为
这样对于多维数组,只需要实现计算好个常数,即可采用上式来快速计算一维编号。
2023年12月10日 08:27
구글 상위노출 isn't just a ranking—it's a reflection of your commitment to delivering value and a superior online experience.
2023年12月26日 04:19
Discover the world of 무료스포츠중계 - your gateway to sports without costs.
2024年1月14日 04:41
Thank you for the sensible critique. Me & my friend were just preparing to do a little research about this. We got a book from our area library but I think I learned better from this post. I am very glad to see such wonderful info being shared freely out there… เว็บตรง คืนยอดเสีย