В настоящее время я разрабатываю язык программирования на C, и я хочу разрешить пользователям создавать, по-видимому, «неограниченные» массивы с числовыми индексами, не жертвуя производительностью в процессе. Например, table [1000000000]
в идеале был бы творческим и доступным в одно мгновение без накладных расходов на память в таблице из 1 000 000 000 предметов, из которых 999 999 999 были неиспользованы; но массив также будет хорошо работать, когда table [n]
был определен, например, для 1 ≤ n ≤ 1000000.Использование хеш-таблицы для создания неограниченного массива
Есть ли у вас предложения по внедрению такой системы обработки массивов?
Редкие массивы могут быть более неэффективными, с 'get/set' сложностью' O (N) '-' N' количества фактических элементов (http: //www.itl.nist.gov/div897/sqg/dads/HTML/hugeSparseArray.html) –
Почему downvote? насколько я могу сказать это _is_ разреженный массив, и я не предлагал реализацию, связанную с @the_void, скорее как связанный список массивов, которые могут быть унифицированы с течением времени – Hasturkun