Универсальный поиск значения в многомерном массиве

 

Хлопчики, столкнулся с такой проблемкой.

Нужно найти индексы ячейки многомерного массива, содержащего заданное значение.

возвращать индексы можно через строку с разделителями, а вот как организовать поиск значения,

если у передаваемых массивов разная размерность?

 
artamir:

Нужно найти индексы ячейки многомерного массива, содержащего заданное значение.

возвращать индексы можно через строку с разделителями, а вот как организовать поиск значения,

если у передаваемых массивов разная размерность?

Передавать в функцию не только сам массив но и его размеры. Возвращать индексы через передачу параметров по ссылке.
 
Candid:
Передавать в функцию не только сам массив но и его размеры. Возвращать индексы через передачу параметров по ссылке.


а можно примерчик, ну хоть какой. а то я совсем не вкуриваю :)))
 

Разные размерности - это разные количества измерений массивов? Скажем, массивы f[][][] и g[][]?

Или это все же просто разные массивы с одинаковыми количествами измерений - скажем, массивы f[20][3] и g[40][2] (оба двумерные)?

Грубо говоря, я толкую о разнице между размерами и размерностями :)

 
void НайтиИндексы(double& МассивДляПоиска[][], int ПервыйРазмер, int ВторойРазмер, int& ПервыйИндекс, int& ВторойИндекс) {


P.S. Если и правда речь о разном количестве измерений, то универсальную функцию можно написать только для фиктивной "многоразмерности", те есть работать на самом деле с одномерным массивом.

 
artamir:

Хлопчики, столкнулся с такой проблемкой.

Нужно найти индексы ячейки многомерного массива, содержащего заданное значение.

возвращать индексы можно через строку с разделителями, а вот как организовать поиск значения,

если у передаваемых массивов разная размерность?


Совершенно непонятна область применения такого приложения. В MQL хорошо реализованы функции сортировки и поиска по первому измерению массива. Может просто изменить свой алгоритм под реализованные возможности языка. Получите короткий и быстрый в исполнении код.

 
Mislaid:


Совершенно непонятна область применения такого приложения.

Имхо, постановка такой задачи имела бы смысл только при существовании способа динамически создавать массивы произвольной размерности. Но такого способа нет.

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

 
Mathemat:

Разные размерности - это разные количества измерений массивов? Скажем, массивы f[][][] и g[][]?

именно так.
 
Candid:

Наиболее практично для каждой реалистичной размерности написать свою функцию поиска.


на текущий момент так и реализовано, но хочется универсальности
 
artamir:

на текущий момент так и реализовано, но хочется универсальности
Ну тогда только назад, в одномерность, и собственная адресная арифметика, имхо
 
Спасибо за участие, тема закрыта
Причина обращения: