![]() |
#1 |
Гость
|
В классах list, set, array, etc. есть метод container pack(), который должен конвертировать содержимое соответствующего контейнерного класса в "стандартный" контейнер Х++.
В процессе его тестирования были обнаружены следующие особенности:
|
|
![]() |
#2 |
Участник
|
Best Practice: Pack-unpack pattern
http://technet.navision.com/usered/BPH/Dev.../PackUnpack.htm Паттерн применяется для того, чтобы упаковать в один объект несколько небольших переменных. Контейнер передается между клиентом и AOS. По соглашению, первый элемент контейнера - номер версии алгоритма упаковки-распаковки. Далее идут переменные, которые обрабатываются unpack'ом. Насколько я понимаю, классы list, set, array хранят что-то свое в дополнительных параметрах. Что конкретно - не знаю. А зачем? Если хочется сделать свой класс, то надо унаследовать от стандартного. Затем в pack|unpack вызывать super. А в своем классе заниматься только спецификой. |
|
![]() |
#3 |
Гость
|
Цитата:
Сообщение от mazzy
А зачем? Если хочется сделать свой класс, то надо унаследовать от стандартного. Затем в pack|unpack вызывать super. А в своем классе заниматься только спецификой.
Цитата:
The implementation of lists is such that traversal of the list elements is very fast.
![]() Зато скорость, все-таки увеличил! |
|
![]() |
#4 |
Участник
|
confind() ищет быстро и корректно, если внутри контейнера атомарные значения
![]() list - не ускоряет поиск. Он быстро делает перебор значений. Для поиска лучше воспрользоваться map'ом. |
|
![]() |
#5 |
Гость
|
Согласен, map гораздо лучше! Пришел к этому сегодня утром
![]() Кстати, "атомарные" значения - это значит одного типа? |
|
![]() |
#6 |
Участник
|
Цитата:
Для поиска лучше воспрользоваться map'ом.
![]() |
|
![]() |
#7 |
Участник
|
Цитата:
Сообщение от Ruff
Кстати, "атомарные" значения - это значит одного типа?
|
|
![]() |
#8 |
Гость
|
Цитата:
Насколько я понимаю "атомарные" = "неделимые" или "простые".
Кстати, видел где-то на technet-е - там кто-то пытался в set контейнеры запихать! Так от этого дела Аксапта аж падает - сам проверял. |
|