Я работаю с рядом одномерных массивов элементов типа int. Естественно, удобно расположить их в одном месте- в двумерном массиве, что я и делаю. Срочка- массив. Строчка- массив.
И вот эти вот строчки идентифицируются у меня по первым четырём элементам. Лопустим, первые четыре элемента: x, y, z, w. А всего элементов больше, штук 7. Так, строчку двумерного массива мы без труда этими элементами заполним. Но вот как к ней в случае необходимости обратиться? Если, повторяю, идентификация строчки- по первым 4-ём элементам? По номеру стоки? А к чему его привязывать? Опять же к этим 4-ём элементам? А не проще ли сделать так:
Создаётся массив int* mass2 [m] [m] [m] [m], где m- достаточно большое число (вы уж простите меня за стоь невнятную формулировку. Для каждой конкретной задачи каждый сам определит для себя m). И после заполнения очередной строчки массива mass1
Код: Выделить всё
mass2 [h] [0]= x;
mass2 [h] [1]= y;
mass2 [h] [2]= z;
mass2 [h] [3]= w;
mass2 [h] [4]= ...<Здесь некоторое значение типа int>
mass2 [h] [5]= ...<Здесь некоторое значение типа int>
mass2 [h] [6]= ...<Здесь некоторое значение типа int>Добавляем
Код: Выделить всё
mass2 [x] [y] [z] [w]= &mass2 [h] [0](Обратите внимание, h- номер строки, но его числовое значение не важно. Он просто должени инкременироваться после инкриминации каждой строки и всё)
Всё, адрес нулевого элемента нужной строки известен, при желании можно всегда найти и последующие:
Код: Выделить всё
* (mass2 [x] [y] [z] [w]+ <какое-то число от 0 до 6>)Всё. Недостатки такого способа: массив mass2 будет заполнен не полностью. Много элементов просто не нужно будет.
Теперь: с трёхмерным массивом такой способ проходит на "ура". А вот с четырёхмерным как быть? Простого тестирования программы будет явно недостаточно- тут нужно знать подноготную. Вот я и обращаюс к вам: может, есть среди вас те, кто собаку съел на этом деле- стоит или нет браться за подобную идентификацию строк?
Спасибо.