配列(1次元2次元)から要素を削除するにはどうすればよいですか? - ページ 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)

したがって,多次元配列を 1次元配列として扱うことは,配列関数を使用する各クラスですべての配列を新たに定義し直さない限り,意味がありません.

そうですね、でも、それはそんなに悪いことではありません。

 
Ilya Malev:

異なるサイズの配列に対して同じ名前で定義された関数(例:ArrayRemove)を定義することはできません(MQLコンパイラの開発者でない限り)。

さらに、このような関数を同じ名前で定義することはできず、いくつかの呼び出しのバリエーションをオーバーロードします。

このように書くことになります。

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

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

したがって、多次元配列を 一次元配列として扱うことは、配列を使用する各クラスで、配列を扱うすべての関数を再定義しない限り、意味がないのです

イリヤ プログラミングの技術から問題提起になっていますね。

後ろ向きに這うように、後ろ向きに物事を進める。

孫娘はもう寝ている。そうでなければ、MTメモリの配列要素が連続的に配置されていることに注意を促しただろう。

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

MTメモリ内の配列要素は連続的に配置されています。

また、これが当面のタスク(タスクのクラス - 関数を介して異なる次元の配列を扱う統一的な作業)とどのような関係があるとお考えでしょうか?

 

例えば、配列から次元に関係なく要素を削除する関数を作りたい場合。あるいは、異なる次元の配列を操作するクラスを作りたい場合。mqlでできるかな?