Transaq
СБО "Transaq" => Подсистема ATF => Topic started by: nikolz on 16.03.2011, 09:42:46
-
Добрый день!
В программах часто использую при работе с массивом операцию unshift
Интересует время исполнения данного оператора.
Вопрос в следующем:
1) Поясните механизм реализации оператора.
Надеюсь , что он не реализуется смещением содержимого массива на элемент в памяти с последующей записью вставляемого.
Предполагаю,что но реализован через изменение индекса.
Если реализован через список, то просьба сообщить затраты памяти на один элемент массива.
2)Если возможно дайте оценку относительного быстродействия по сравнению с косвенной адресацией.
3) Зависит ли время исполнения операции unshift от длины массива.
Например массив 10 элементов или массив 100 тысяч элементов.
Спасибо
-
Используется дек, и в зависимости от ситуации либо массив будет переписан полностью в заново выделенную область памяти, либо просто расширен.
На каждый элемент массива, если только это не строки, затрачивается всегда 8 байт.