@ Traumapony-- Я бы на самом деле утверждал, что реальный прирост производительности достигается в одном гигантском плоском массиве, но это может быть просто показ корней моей обработки изображений в C ++.
Это зависит от того, что вам нужно сделать 2D-структуру. Если он хранит что-то, где каждый набор элементов во втором измерении имеет одинаковый размер, то вы хотите использовать что-то вроде большого 1D массива, потому что время поиска быстрее и управление данными проще. Как:
for (y = 0; y < ysize; y++){
for (x = 0; x < xsize; x++){
theArray[y*xsize + x] = //some stuff!
}
}
И затем вы можете выполнять операции, которые игнорируют соседние пиксели одним проходом:
totalsize = xsize*ysize;
for (x = 0; x < totalsize; x++){
theArray[x] = //some stuff!
}
За исключением того, что в C # вы, вероятно, хотите фактически вызвать библиотеку C ++ для выполнения такого рода обработки; C ++ работает быстрее, особенно если вы используете компилятор Intel.
Если у вас второе измерение, имеющее несколько разных размеров, то я ничего не сказал, и вы должны взглянуть на некоторые другие решения. Вам действительно нужно знать, каковы ваши функциональные требования, чтобы иметь возможность ответить на вопрос.