Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
ФХЪРСап 13, 2024, 07:38:53 pm
Начало Помощь Поиск Войти Регистрация
Новости:

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: работа с массивами « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: работа с массивами  (Прочитано 3467 раз)
nikolz
Sr. Member
****
Сообщений: 285


Просмотр профиля Email
« : ЬРавР 16, 2011, 09:42:46 am »

Добрый день!
В программах часто использую при работе с массивом операцию unshift
Интересует время исполнения данного оператора.
Вопрос в следующем:
1) Поясните механизм реализации оператора.
Надеюсь , что он не реализуется смещением содержимого массива на элемент в памяти с последующей записью вставляемого.
Предполагаю,что но реализован через изменение индекса.
Если реализован через список, то просьба сообщить затраты памяти на один элемент массива.
2)Если возможно дайте оценку относительного быстродействия по сравнению с косвенной адресацией.
3) Зависит ли время исполнения операции  unshift от длины массива.
Например массив 10 элементов или массив 100 тысяч элементов.
Спасибо
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #1 : ЬРавР 16, 2011, 12:24:43 pm »

Используется дек, и в зависимости от ситуации либо массив будет переписан полностью в заново выделенную область памяти, либо просто расширен.

На каждый элемент массива, если только это не строки, затрачивается всегда 8 байт.
Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: работа с массивами « предыдущая тема следующая тема »
Перейти в:  


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!