intArrayCopy(
void& dst_array[], // куда копируем constvoid& src_array[], // откуда копируем int dst_start=0, // с какого индекса пишем в приемник int src_start=0, // с какого индекса копируем из источника int count=WHOLE_ARRAY// сколько элементов
);
将数组 "复制到自身",从要删除的数组旁边的位置开始,从要删除的数组开始写入。然后按照Grigori.S.B的建议调整大小
有趣的是,如果我没有理解错的话,你需要使用这个功能吗?
早上好,谢谢你的答复。
我想你还没有注意到,你可以看看上面,所有的问题都是关于MQL5的。
我明白,这种差别有时并不关键,但尽管如此。你所引用的函数调整了数组的大小,也许在大小减少的情况下切断了多余的元素。
这不是我们所需要的。你需要通过找到一个元素的值来删除它。我也试过这个功能,我在#23中写过。还是谢谢你。
我也没有注意到这一点。mql5有ArrayRemove功能,没有问题。
在这种情况下,ArrayRemove 更合适,手册中有一个例子,它的工作原理完全是这样 的
唯一的问题是,这些例子和函数是为一维数组设计的,而它们不想与二维数组一起工作。
我想我错过了一些非常重要和基本的东西。但它是什么呢?
我告诉你,我已经失去了参考书。
在这种情况下,ArrayRemove 更合适,手册中有一个例子,它的工作原理完全是这样 的
唯一的问题是,这些例子和函数是为一维数组设计的,而它们不想与二维数组一起工作。
我想我错过了一些非常重要和基本的东西。但它是什么呢?
我告诉你,我已经记不清楚了。
对于一个二维数组,你需要把要删除的行数乘以2。对于一个3维的数组,乘以3...
我不太明白,请你详细说明一下,或者最好给我看看我的一段代码的编辑情况,我在上面贴了。如果不方便,那么不管怎样,我都会想办法解决的。
不,顺序并不重要,你只需要删除一个已知的(通过知识发现,索引是已知的)条目。ArrayRemove 很好,一切都会很好,但如何将这个函数应用于二维数组? 手册中没有提到。
不,顺序并不重要,我们只需要删除一个已知的(通过认知找到的,索引是已知的)记录。ArrayRemove很好,一切都会很好,但是如何将这个函数应用于二维数组呢? 手册中没有关于这个的内容。
在这种情况下,ArrayRemove 更合适,手册中有一个例子,它的工作原理完全是这样 的
唯一的问题是,这些例子和函数是为一维数组设计的,而它们不想与二维数组一起工作。
我想我错过了一些非常重要和基本的东西。但它是什么呢?
我告诉你,我已经失去了参考书。
那是胡说八道。我没有看手册就使用了这个功能。在调试器中,我看到该元素被删除,数组的大小瞬间减少。我检查过了,它甚至在有结构数组的情况下也能工作,没有任何问题。现在我不能用代码工作,只能用文字:例如,我想从一个二维数组中删除第三个索引。事实证明,第五和第六个值必须被删除。在复制时,该函数,HOWEVER,将所有的值排列成一个一维数组,结果发现第三对值从索引5开始。一般来说,这在几次实验后就会有所领悟。
至于ArrayRemove,当我可以时,我会在2-4维的数组上测试它。因为不需要,我从来没有测试过,也没有怀疑它不起作用。
已添加。
已检查。不要忘记,你不能调整静态数组的大小。这就是为什么在文档中的例子中,数组的大小保持不变,最后两个字符串被重复。当你从一个动态数组 中删除行时,大小的变化没有任何问题。
手册应擦拭到显示器中的孔:))))。
下面是3维数组和结果。
那是垃圾。我没有看手册就使用了这个功能。在调试器中,我看到了元素被删除,数组的大小被瞬间缩小。经检查,即使在一个数组结构上工作也没有问题。现在我不能用代码工作,只能用文字:例如,我想从一个二维数组中删除第三个索引。事实证明,第五和第六个值必须被删除。在复制时,该函数,HOWEVER,将所有的值排列成一个一维数组,结果发现第三对从索引5开始。一般来说,这在几次实验后就会有所领悟。
至于ArrayRemove,当我可以时,我会在2-4维的数组上测试它。因为不需要,我从来没有测试过,也没有怀疑它不起作用。
已添加。
已检查。不要忘记,你不能调整静态数组的大小。这就是为什么在文档中的例子中,数组的大小保持不变,最后两个字符串被重复。当你从一个动态数组 中删除行时,大小的变化没有任何问题。
该目录必须被刷到显示器中的孔:))))。
这里我做了一个3维数组,结果是什么?
你的例子非常慢,如果有大量的值,这将是很明显的。
用大量的什么?阵列元素 甚至没有在每次勾选时被填充?它将如何被注意到?