Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.11.2013, 20:43
shmaser вне форума Посмотреть профиль Отправить личное сообщение для shmaser Найти все сообщения от shmaser
  № 1  
Ответить с цитированием
shmaser
 
Аватар для shmaser

Регистрация: Aug 2010
Сообщений: 22
По умолчанию Структура данных для пула объектов

Доброго времени суток, прошу помочь разобраться по следующий вопросам:
  1. Видел много реализаций пула объектов через массив, есть ли какие-либо преимущества/недостатки реализации в виде самописного односвязного списка? Кто-то вообще так делает? Как минимум, список позволит избежать реаллокации памяти на первых порах, пока пул расширяется и, наверное, доступ по ссылке будет быстрее чем по индексу.
  2. Когда необходимо удалять элементы в неупорядоченном массиве, встречал реализацию когда последний элемент ставят вместо удаляемого и хранят реальную длину массива в отдельной переменной. Является ли данный подход альтернативой спискам? Т.е. получается что можно легко изменять элементы в коллекции и при этом иметь доступ к любому элементу по индексу. Т.е. имеем преимущества как списков так и массивов (рассматриваются только неупорядоченные данные).
В общем, интересуют любые размышления по этим вопросам.

Старый 04.11.2013, 21:04
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 2  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
В обоих случаях вы будете иметь дело со ссылками. Выбор способа представления данных зависит от цели и способа их обработки.

Старый 04.11.2013, 21:28
shmaser вне форума Посмотреть профиль Отправить личное сообщение для shmaser Найти все сообщения от shmaser
  № 3  
Ответить с цитированием
shmaser
 
Аватар для shmaser

Регистрация: Aug 2010
Сообщений: 22
Цитата:
Выбор способа представления данных зависит от цели и способа их обработки.
Пул объектов понятно же для какой цели существует и способ обработки данных в нем.
Еще ни одной реализации не видел пула в виде списка, везде только массивы, интересно чем это обусловлено.

Старый 04.11.2013, 21:50
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 4  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Если вы используете Dictionary доступ осуществляется по ссылке. Какой смысл в односвязном списке?

Старый 04.11.2013, 22:14
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 5  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Еще ни одной реализации не видел пула в виде списка
Вы меня извините за глупый вопрос - что такое список?
я понимаю тему настолько, что могу обьяснить пользу от удаления последнего элемента пула,
по тому что менее используемый. Так же могу сказать, что использовать Dictionary удобно в случаи получения по ключу. Тут наверное подход зависит от того, для чего он нужен.
Но я это сказал всё для того, чтобы больше шансов было на получения ответа на мой вопрос

Старый 04.11.2013, 23:13
Frost47rus вне форума Посмотреть профиль Отправить личное сообщение для Frost47rus Найти все сообщения от Frost47rus
  № 6  
Ответить с цитированием
Frost47rus
[+4 08.09.13]

Регистрация: May 2012
Сообщений: 131
Список в ас3 - это Vector<>.
Хотя, в контексте, сам не могу понять какое именно значение вкладывает автор в это слово.
Я не совсем понял, что автор хочет. Хранить в обычном массиве объекты разных типов?
Если да, то сразу же первый вопрос - зачем?
Если нет, то вопрос второй - в чем суть поста?

Старый 04.11.2013, 23:15
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 7  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
1. Связный список не имеет нативной реализации в AS 3. Потому и примеров нету. Самописный? Попробовать можно, почему нет? Но вряд ли это будет быстрее вектора.
2. Зачем что-то удалять из пула? (глобальная зачистка не в счет).
Может быть стоит сделать что-то простое? Не стоит заниматься преждевременной оптимизацией.
Akopalipsis, http://ru.wikipedia.org/wiki/Связный_список же


Последний раз редактировалось alexcon314; 04.11.2013 в 23:28.
Старый 04.11.2013, 23:44
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 8  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Это композиция же?)

Старый 05.11.2013, 00:35
shmaser вне форума Посмотреть профиль Отправить личное сообщение для shmaser Найти все сообщения от shmaser
  № 9  
Ответить с цитированием
shmaser
 
Аватар для shmaser

Регистрация: Aug 2010
Сообщений: 22
Цитата:
1. Связный список не имеет нативной реализации в AS 3. Потому и примеров нету. Самописный? Попробовать можно, почему нет? Но вряд ли это будет быстрее вектора.
Да, все верно самописный. У меня существует уже реализация связного списка, которую я использую для других действий, вот задумался над вопросом стОит ли использовать такую структуру данных в качестве пула. Оператор квадратной скобки для доступа к Vector/Array достаточно медленный, а с использованием связного списка доставать элементы можно будет по ссылкам.
Цитата:
Зачем что-то удалять из пула? (глобальная зачистка не в счет).
Второй вопрос никак не связан с пулом, он чисто абстрактный. Раньше я списки не использовал вообще, в массивах где требовалось удалять/добавлять элементы городились костыли, во избежание методов splice(), push(), pop() и т.п. С одной стороны, используя списки можно экологично-чисто изменять длину коллекции, с другой, способом, описанным выше:
Цитата:
…последний элемент ставят вместо удаляемого и хранят реальную длину массива в отдельной переменной.
можно делать тоже самое. Вопрос в том, что не могу четко определить для себя что лучше
Цитата:
Может быть стоит сделать что-то простое? Не стоит заниматься преждевременной оптимизацией.
Дело в том, что на данном этапе у меня грядет лютый рефакторинг практически во всем и пул объектов - одна из его частей

Старый 05.11.2013, 00:57
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 10  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
Сообщение от Akopalipsis
Это композиция
Агрегирование (программирование)
какой-то форум с темой о композиции
Еще один форум
Короче практически всё в ООП в той или иной мере является композицией
__________________
Кто к нам с чем для чего - тот у нас того от того.

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:24.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.