iarspider писал(а):
Если, как предлагает nesco, организовывать память в виде списка (если я правильно помню, то наш MT - это классический односвязный список), то получаем медленный (относительно) произвольный доступ: для получения i-го элемента мы обязаны прочитать все предшествующие элементы - это i обращений к памяти. Зато изменение размера такого массива происходит достаточно быстро (выделение места + запись одного указателя)Ты упустил одно -- я предлагал кластерный массив, когда под блок массива выделяется память на определенное количество элементов, при увеличении количества элементов сверх размера кластера, происходит создание следующего кластера, так работает файловая система -- следующий кластер не создается, пока не будет заполнен предыдущий. Но, увы, это предполагает увеличение памяти, тк даже на один элемент будет создан полноформатный кластер, но зато мы практически не теряем в быстродействии. И на кой черт нам читать весь массив для получения i-го элемента, когда мы элементарно можим вычислить, в каком кластере он находится и на какой позиции, данные-то имеют фиксированную длину