Как удалить элемент из массива (одномерного двумерного)? - страница 6

 
Aliaksandr Hryshyn:
Разве есть проблемы с определением размерности?

С определением нет. Проблемы есть с получением массивов разной размерности в качестве параметра функции.

 
Больше 4-ех измерений здесь не бывает у массивов. Так что, можно 4-ре разных функции написать и все. 
 
Ilya Malev:

С определением нет. Проблемы есть с получением массивов разной размерности в качестве параметра функции.

Используйте классы для таких вещей. В функцию передавайте экземпляр класса с разными массивами...
 
Dmitry Fedoseev:
Больше 4-ех измерений здесь не бывает у массивов. Так что, можно 4-ре разных функции написать и все. 

Можно вообще не пользоваться массивами с размерностью больше 1, а если нужно манипулировать чем-то с разными полями, то использовать массив структур или список объектов. Я лично так всегда и делаю, когда пишу что-то сам. Но в чужом коде, с которым тоже приходится сталкиваться, попадаются и такие варианты, как многомерный массив. И вот тут начинается самое веселое...

 
Aliaksandr Hryshyn:
Используйте классы для таких вещей. В функцию передавайте экземпляр класса с разными массивами...

Попробуйте определить такой класс, чтобы вызов функции применимо к массиву разной размерности выглядел одинаково.

 
Ilya Malev:

Нормальные вопросы, Вы зря то что в скобках в названии ветки написано проигнорировали. Не зная число элементов - можно. Не зная размерности - нельзя.

Открою страшную тайну. Массив одномерный. Любой. Я ведь уже говорил... 

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

Открою страшную тайну. Массив одномерный. Любой. Я ведь уже говорил... 


Ilya Malev:

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

 
Ilya Malev:

Попробуйте определить такой класс, чтобы вызов функции применимо к массиву разной размерности выглядел одинаково.

Я имею ввиду, что нужный массив/массивы надо определять в классе, а функции передавать экземпляр данного класса.
 

Интересный феномен...

Когда садишься писать какую-нибудь функцию себе в коллекцию возникает вопрос, а как лучше - так, что быстро работало (без проверок):

void ArrayDelete(int & a[],int Start,int Count=1){
   ArrayCopy(a,a,Start,Start+Count);
   ArrayResize(a,ArraySize(a)-Count);
}

Или же с защитой от дурака, так, что бы разумность параметров проверялась и корректировалась? Тут понимаешь, что быстрый вариант не достоин коллекции, потому что его и так легко написать и он из себя ничего полезного не представляет. А вариант со всеми проверками хорошо только как музейный экспонат, потому что практически не нужны лишние тормоза. И поэтому - ну его нафик.

 
Aliaksandr Hryshyn:
Я имею ввиду, что нужный массив/массивы надо определять в классе, а функции передавать экземпляр данного класса.

Если так подходить к задаче, то многомерные массивы вообще объявлять не нужно - вместо них нужно использовать массивы структур с разными полями. Но вопрос ставится иначе - что мы можем сделать с уже имеющимся как данность массивом произвольной (неизвестной заранее) размерности

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