Я ищу структуру данных, которая позволила бы мне хранить 2D-матрицу M
-by- N
, смежно в памяти, так что расстояние в памяти между любыми двумя точками приближается к евклидову расстоянию между те точки в матрице. То есть в типичном строчном представлении в виде одномерного массива элементов M * N
расстояние между памятью различается между соседними ячейками в той же строке (1
) и соседними ячейками в соседних строках (N
).
Мне нужна структура данных, которая уменьшает или устраняет эту разницу. Действительно, название такой структуры достаточно, я могу реализовать ее сам. Если ответы на вопросы относятся к библиотекам для такого рода вещей, это также приемлемо, но они должны использоваться с С++.
У меня есть приложение, которое должно быстро выполнять свертки изображений без аппаратного ускорения, и хотя я знаю об обычных методах оптимизации для такого рода вещей, я считаю, что специализированная структура данных или упорядочение данных могут повысить производительность.