如何从一个数组(一维二维)中删除一个元素? - 页 9

 
当然,你可以忽略这些成本和费用,在调用函数 之前将任何维度的数组改写成#define中新创建的一维数组(然后再改写回来),但成本会很可怜。
 
Alexey Viktorov:

为什么没有帮助?

...

因为无论是数组的维数还是任何一个维数的大小都不会触发重载。而将可以自动定义的参数传递到一个函数中,并不是一个非常明智的决定。

 
Dmitry Fedoseev:

因为无论是数组的维数还是任何一个维数的大小都不会触发重载。而将可以自动定义的参数传递到一个函数中,并不完全是一个明智的决定。

是的,我已经意识到这是在浪费时间。

 
总而言之,这是一个有价值的话题,但对我来说,它非常广泛和复杂,是需要多年经验才能达到的。
 
Seric29:
总而言之,这是一个有价值的话题,但对我来说,它非常广泛和复杂,是需要多年经验才能达到的。

不要说得太详细,他们想把一切都变得太普遍,但没有它你也可以活得很好。

 
实际上,在该主题的第一个回复中,已经给出了一个通用的配方。你只需打开它,自己测试一下,但你不能把它全部嚼碎了放进嘴里,对吗?
 
Ilya Malev:
事实上,在该主题的第一个答复中,已经给出了一个通用的配方。你只需要打开它,自己测试一下,但你不能把它全部嚼碎了放进嘴里,对吗?

伊利亚,你真的把这个话题当做严肃的事情吗?只是为了玩一玩,找点乐子......。你已经给出了一个可行的答案:一切以一维数组为单位,然后返回,不考虑维度。我的答案和你一样,只有一些小的技术细节,并不改变本质。我没有得到关于定义和可悲的费用的观点。

 
Алексей Тарабанов:

伊利亚,你真的把这个话题当做严肃的事情吗?只是为了玩一玩,找点乐子......。你已经给出了一个可行的答案:一切以一维数组为单位,然后返回,不考虑维度。我的答案和你一样,只有一些小的技术细节,并不改变本质。我不明白你说的费用和令人遗憾的费用是什么意思。

不,相反并不严重,我只是再次解释了TC在哪里寻找解决方案(第一个帖子最有可能工作,虽然我没有检查)。然后开始了各种各样的唠叨:)

虽然在μl中这些阵列的情况很悲哀,但另一件事是,在99%的情况下不需要它们。当你有了头绪,任何编码员都会使用结构甚至对象。

我写的定义解决了我设定的问题))- 对ArrayDel的一次调用执行代码,由Dmitry编写,用于不同的数组。诚然,这不是一种功能,而是一种 "死人的膏药",正如他们所说。谈到定义成本,如果你真的想为任何数组运行一个int ar[]参数,你可以这样做(这是一种简化,实际上测量的数量也应该在这里传递)。


#property strict

#define  PackAndDel(A,S,C) { int tmp[]; ArrayCopy(tmp,A); ArrayDelete(tmp,S,C); ArrayCopy(A,tmp); }

void ArrayDelete(int &ar[], int start, int count)
 {

  // ..... ;

 }



void OnStart ()

{

  int ar1[];

  int ar2[][5];

  int ar3[][6][2];

  PackAndDel( ar1, 0, 1 );

  PackAndDel( ar2, 4, 1 );

  PackAndDel( ar3, 1, 3 );

}