Параллельный массив


В программировании, паралле́льный масси́вструктура данных для представления массива записей, которая физически состоит из отдельных однотипных массивов одинаковой длины для каждого из полей записи. Значения элементов с одинаковым порядковым номером в каждом массиве, логически принадлежат одной структуре. В качестве указателей на структуру используется общий индекс в параллельном массиве. Этот подход отличается от традиционного, при котором все поля структуры хранятся в соседних областях памяти. К примеру, можно объявить массив строкового типа для 100 имен, и массив целых чисел для 100 возрастов, и считать, что каждому имени соответствует возраст с таким же индексом записи.

Пример реализации на Perl (использован ассоциативный массив для логической группировки компонентов параллельного массива):

Несмотря на это, у параллельных массивов есть несколько существенных недостатков, которые объясняют, почему они не используются повсеместно:

Плохая локальность является серьезным недостатком, но можно воспользоваться следующими подходами, чтобы уменьшить серьезность проблемы и её влияние на производительность: