2014-01-05 2 views
0

Что происходит быстрее? Я хочу написать API для обработки и вычисления с помощью векторов и матриц. «Matrix4f» требует 4 * 4 значений поплавка. Должен ли я писать это как 16 полей или двумерный массив? Но если я использую поля, наследование невозможно.Фиксированная длина массива против полей

+1

Что происходит быстрее? Это зависит. Измерьте, не догадывайтесь. –

+0

Массивы имеют O (1) время поиска, оно не должно сильно отличаться. Вы действительно хотите сохранить 16 отдельных полей? –

+0

Если его намного быстрее, то да, я хочу это поддерживать. –

ответ

1

Это скорее вопрос ремонтопригодности, чем скорости. Разница в скорости между двумя альтернативами почти наверняка не будет заметной. Однако подход массива имеет больше смысла с точки зрения того, что вы пытаетесь моделировать, и с ним проще справляться (скажем, например, вы хотите создать матрицу 5x5 вместо этого, тогда ваш код массива будет легко повторно использоваться, тогда как ваш код с 16 полями потребует радикальных изменений). Короче говоря, не беспокойтесь о скорости при принятии этого решения, волнуйтесь вместо этого о том, что имеет больше смысла и что будет легче управлять по линии; то выбор должен быть ясным.

1

Нет никакой сложности при доступе к массиву и при доступе к переменной O(1) так сказать.

Это не то, что вам следует учитывать в скорости, но ваши фактические алгоритмы и функции.

Смежные вопросы