Как удалить элемент из массива (одномерного двумерного)? - страница 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)

Поэтому и работа с многомерным массивом как с одномерным лишена смысла, если только Вы не хотите переопределять все функции работы с массивами заново в каждом из классов, которые их используют

Илья, Вы идете от приема программирования к постановке задачи. 

Ползай задом наперед, делай все наоборот. 

Моя внучка уже спит, иначе она обратила бы Ваше внимание на то, что элементы массива в памяти МТ расположены непрерывно. 

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

элементы массива в памяти МТ расположены непрерывно. 

И какое по Вашему это имеет отношение к поставленной задаче (классу задач - унифицированная работа с массивами разной размерности через функции)?

 

Например, Вы хотите сделать функцию удаления элемента из массива вне зависимости от его размерности. Или Вы хотите сделать класс, который работает с массивами разной размерности. Как Вы думаете, у Вас это получится в mql?

Причина обращения: