找回密码
 点一下
查看: 1598|回复: 0

简单实现4维数组,纯属娱乐

[复制链接]
发表于 2010-3-9 18:43:25 | 显示全部楼层 |阅读模式
[jass]
//! zinc

library Test
{
    constant integer ARRAY_SIZE_W = 5;
    constant integer ARRAY_SIZE_X = 5;
    constant integer ARRAY_SIZE_Y = 5;
    constant integer ARRAY_SIZE_Z = 5;

    type one extends integer [ARRAY_SIZE_Z];
    type two extends one [ARRAY_SIZE_Y];
    type three extends two [ARRAY_SIZE_X];
    type four extends three [ARRAY_SIZE_W];
   
    struct foo
    {
        four bar;
        
        static method create()->thistype
        {
            integer i,j,k;
            thistype this = thistype.allocate();
            
            for(i=0;i<ARRAY_SIZE_W;i+=1){
                for(j=0;j<ARRAY_SIZE_X;j+=1){
                    for(k=0;k<ARRAY_SIZE_Y;k+=1){
                        this.bar[j][k].create();
                    }               
                }               
            }
            
            return this;
        }
        
        method onDestroy()
        {
            integer i,j,k;
            
            for(i=0;i<ARRAY_SIZE_W;i+=1){
                for(j=0;j<ARRAY_SIZE_X;j+=1){
                    for(k=0;k<ARRAY_SIZE_Y;k+=1){
                        this.bar[j][k].destroy();
                    }               
                }               
            }
        }        
    }

    function onInit()
    {
        foo f = foo.create();
        
        f.bar[1][2][3][4] = 1234;
        BJDebugMsg(I2S(f.bar[1][2][3][4]));
    }
}

//! endzinc

[/jass]




n维数组的实现原理其实就是n层套嵌。没什么实际用处。
没有经过速度测试,稳定性测试。
纯属娱乐,老鸟飘过。
您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-4 16:25 , Processed in 0.123812 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表