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

 
Dmitry Fedoseev:

哪些方法?什么签名?

任何方法。

 
Ilya Malev:

任何方法。

这跟它有什么关系?

 
Dmitry Fedoseev:

是的,我们的工作就像与一维的工作。我们不需要描述数据结构--我们在一行中读取所有内容。

 
ArrayCopy() 对指针起作用。
 
Dmitry Fedoseev:

这跟它有什么关系?

你不能对不同大小的数组以相同的方式定义一个函数(例如,删除一个元素)(例如,ArrayRemove)(除非你是MQL编译器的开发者)。

此外,你将不能用相同的名字定义这样的函数,重载几个变体的调用

你必须这样写

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

ArrayRemove4(var&[][][][],int)

所以把多维数组 当作一维数组来处理也是没有意义的,除非你想在每个使用它们的类中重新定义所有数组函数

 
好的,那么。
 
Ilya Malev:

你不能以相同的方式为不同大小的数组定义一个函数(如删除一个元素)(如ArrayRemove)(除非你是一个MQL编译器的开发者)。

此外,你将不能用相同的名字定义这样的函数,重载几个变体的调用

你必须这样写

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

ArrayRemove4(var&[][][][],int)

所以把多维数组 当作一维数组来处理是没有意义的,除非你想在每个使用它们的类中重新定义所有的数组函数

是的,但这并不是一件坏事。

 
Ilya Malev:

你不能以相同的方式为不同大小的数组定义一个函数(如删除一个元素)(如ArrayRemove)(除非你是一个MQL编译器的开发者)。

此外,你将不能用相同的名字定义这样的函数,重载几个变体的调用

你必须这样写

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

ArrayRemove4(var&[][][][],int)

所以把多维数组 当作一维数组来处理是没有意义的,除非你想在每个使用数组的类中重新定义处理数组的所有功能

伊利亚,你正在从编程技术转向问题陈述。

向后爬,向后做事情。

我的孙女已经睡着了,否则她会让你注意到MT存储器中的数组元素是连续排列的。

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

MT存储器中的阵列元素是连续排列的。

而你认为这与手头的任务(一类任务--通过函数统一处理不同维度的数组)有什么关系?

 

例如,你想做一个函数,从一个数组中删除一个元素,而不管它的维度如何。或者你想做一个能处理不同维度的数组的类。你认为你能在mql中这样做吗?