Изменения

Перейти к: навигация, поиск

Саморасширяющийся массив

807 байт добавлено, 13:44, 25 мая 2014
Саморасширяющиеся массивы в современных языках программирования
Саморасширяющиеся массивы широко применяются во многих языках программирования. Рассмотрим, как эта структура данных реализуется в С++ и Java.
===С++ {{---}} vector===
В С++ саморасширяющийся массив называется используется в структуре vector, он описан она описана в STL(<vector>). Стратегия его расширения проста: при попытке записи в массив нового элемента в момент полного заполнения памяти происходит увеличение размера в <tex>2</tex> раза при компиляции GNU C++ и в <tex>1.5</tex> раза при компиляции Microsoft Visual C++. При удалении элементов уменьшение размера массива никогда не происходит. При инициализации vector по-умолчанию начальный размер равен <tex>0</tex>.===Java {{---}} ArrayList===В Java структура ArrayList основана на саморасширяющемся массиве. При превышении максимального на данный момент размера происходит увеличение в <tex>1.5</tex> раза. Причем начальный размер равен <tex>10</tex>. Как и в vector, в ArrayList не предусмотрено изменение размера при удалении элементов. Для принудительного изменения размера следует использовать метод trimToSize().
Анонимный участник

Навигация