- 1
chunksLst.erase(++it1);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
chunksLst.erase(++it1);
laMer007 16.06.2014 12:23 # 0
Dummy00001 16.06.2014 15:55 # +4
самое поганое то что как STL написана, добавить итераторы с проверками (которые можно было бы активировать каким дефайном) в принципе уже невозможно. (ок, возможно, но это такая куча неблагодарной работы, что равносильно переписыванию несколько раз STL с нуля.)
Soul_re@ver 16.06.2014 12:51 # 0
defecate-plusplus 16.06.2014 12:58 # +1
absolut 16.06.2014 13:28 # +3
defecate-plusplus 16.06.2014 13:55 # 0
laMer007 16.06.2014 14:59 # +2
absolut 16.06.2014 15:09 # +6
v4 -> v6
eth0 16.06.2014 18:40 # +5
bormand 17.06.2014 09:38 # 0
absolut 17.06.2014 13:12 # +1
bormand 17.06.2014 13:13 # +1
kegdan 17.06.2014 13:41 # 0
Lure Of Chaos 17.06.2014 10:54 # +1
laMer007 17.06.2014 11:12 # +2
Lure Of Chaos 17.06.2014 11:18 # 0
3.14159265 17.06.2014 13:27 # +3
ln(-1), возможно будет понятней
absolut 17.06.2014 13:13 # 0
laMer007 16.06.2014 15:01 # +2
kegdan 16.06.2014 17:57 # 0
в плюсах?
bormand 16.06.2014 18:00 # +1
kegdan 16.06.2014 18:03 # 0
bormand 16.06.2014 18:07 # +3
Ну в жабе list это все-таки массив, а не список. Так что там этот код не столько тормозит, сколько не все элементы удаляет :)
P.S. Бесит вот эта разница в терминологии - где-то list это список с произвольной реализацией, к которому можно обращаться по индексу (привет жабе), где-то это явно массив (привет питону), а где-то - именно связный список (привет крестам).
kegdan 16.06.2014 18:08 # 0
absolut 16.06.2014 19:58 # 0
kipar 16.06.2014 22:42 # 0
bormand 16.06.2014 23:03 # 0
kipar 16.06.2014 23:13 # 0
bormand 16.06.2014 23:16 # +1
kipar 17.06.2014 10:24 # 0
defecate-plusplus 17.06.2014 10:41 # 0
наверное, именно поэтому на странице в педивикии (и русской, и английской) для List красуется рисунок, изображающий связный список - потому что большинство представляет его как массив, ага
и большинству, конечно, известно, что к абстрактному типу данных List не накладываются требования рандомного доступа - лишь последовательного, но их не смущает это противоречие
----
путаница в терминологии возникла именно из-за плохого проектирования дельфиней библиотеки
что мешало им сделать TArray? и как называется связный список в библиотеке? в дельфи же есть в поставке связный список?
laMer007 17.06.2014 11:07 # 0
Но зачем? Тем, для кого, список это массив, связанный список никак не поможет.
bormand 17.06.2014 12:14 # 0
В жабе накладывается.
http://docs.oracle.com/javase/7/docs/api/java/util/List.html#get%28int%29
defecate-plusplus 17.06.2014 12:21 # 0
get(idx) можно и за O(N) выполнить последовательно
bormand 17.06.2014 12:44 # 0
defecate-plusplus 17.06.2014 12:52 # +2
> In data structures, direct access implies the ability to access any entry in a list in constant (independent of its position in the list and of list's size, i.e. O(1)) time.
absolut 17.06.2014 13:16 # +4
absolut 17.06.2014 13:23 # 0
bormand 17.06.2014 13:43 # 0
Ага, а теперь удали элемент из середины.
kegdan 17.06.2014 13:47 # +1
Вы изобретаете новый тип данных?
absolut 17.06.2014 15:11 # 0
Сдвинул ячейки, обновил длину. Стандартный подход.
bormand 17.06.2014 15:14 # 0
За O(1)? :)
> Стандартный подход.
Я знаю. Но этот подход меняет только константу перед O(n). Неплохо меняет, если структуры большие. Но сложность, увы, не понижает. Ну разве что кроме случая, когда ты удаляешь из списка пачку элементов, а затем один раз перестраиваешь индекс.
absolut 17.06.2014 15:22 # 0
Вам "шашечки" или ехать? :)
bormand 17.06.2014 15:24 # 0
Мне чтобы таксист не обсчитывал. А кое-кто тут выше написал, что это будет заебись-O(1)-лист :)
absolut 17.06.2014 16:15 # 0
на доступ к элементам - да.
kegdan 17.06.2014 16:28 # 0
Lure Of Chaos 17.06.2014 13:45 # +2
http://docs.oracle.com/javase/7/docs/api/java/util/RandomAccess.html
kipar 17.06.2014 17:32 # 0
И где я это утверждал?
Википедия в точности подтверждает мою точку зрения - первым идет определение как абстрактной структуры данных. Соответственно говорить о том что, к примеру, хранить в списке нехорошо т.к. будет оверхед по памяти - крестодеформация. Или например считать что число элементов в векторе может изменяться - ну кто мешал им назвать его array?
wvxvw 17.06.2014 19:23 # +1
defecate-plusplus 17.06.2014 20:14 # +1
я неспроста его не нашёл - его тупо нет?
kipar 17.06.2014 23:43 # 0
bormand 18.06.2014 05:24 # 0
kipar 18.06.2014 10:11 # 0
Vasiliy 18.06.2014 17:19 # 0
bormand 18.06.2014 19:26 # 0
Да и память же не освободится сама по себе, если указатель на нее засунуть в variant и этот variant умрет?
brutushafens 18.06.2014 21:43 # 0
kegdan 18.06.2014 21:46 # 0
Variant может содержать данные любого типа, за исключением структурных типов и указателей
brutushafens 18.06.2014 21:52 # 0
kegdan 18.06.2014 21:59 # 0
Да ладно.
brutushafens 18.06.2014 22:02 # +1
bormand 18.06.2014 22:21 # +1
Традиционный 32-битный дельфиний БДСМ:
brutushafens 18.06.2014 23:11 # 0
bormand 18.06.2014 23:32 # 0
kegdan 18.06.2014 21:41 # 0
сомнительное удовольствие
bormand 18.06.2014 21:43 # 0
kegdan 18.06.2014 21:44 # +2
brutushafens 18.06.2014 21:53 # 0
laMer007 17.06.2014 11:04 # 0
Например для малых объёмов данных с небольшими элементами - это вектор. Для такого же объёма данных, но с большими элементами - это вектор указателей на элементы. Ну а дальше уже свзанный лист понятное дело.
3.14159265 17.06.2014 13:17 # +1
А где-то он ленивый и похож на итератор.
1024-- 16.06.2014 21:51 # 0
Напоминает:
laMer007 17.06.2014 11:10 # +1
Это stride через 1.
brutushafens 16.06.2014 20:10 # +1
bormand 16.06.2014 20:11 # +2
brutushafens 16.06.2014 20:15 # +1
bormand 16.06.2014 20:20 # +1
В жабе, крестах и шарпе - точно есть. Да вроде и в остальных был.
> списками, содержащими ссылки на объекты
А с этим в языках, отличных от делфи, давно научились бороться - в крестах RAII, в жабе и шарпе - сборщик мусора. Вот у меня есть небольшой заброшенный проектик на крестах - в нем на 100(!) классов одно рукопашное освобождение памяти, да и то сдуру и от лени, и легко убирается.
brutushafens 16.06.2014 20:51 # 0
defecate-plusplus 16.06.2014 20:55 # +3
ты из какого года пишешь? из 97?
brutushafens 16.06.2014 21:05 # +1
kegdan 16.06.2014 20:56 # 0
kegdan 16.06.2014 20:55 # 0
brutushafens 16.06.2014 21:10 # +1
kegdan 16.06.2014 21:14 # +1
Что мне тебе на это ответить?
Ты мутируешь в царя
brutushafens 16.06.2014 21:22 # +1
kegdan 16.06.2014 21:24 # +2
brutushafens 16.06.2014 21:26 # +2
kegdan 16.06.2014 21:28 # +2
brutushafens 16.06.2014 21:30 # +1
kegdan 16.06.2014 21:32 # 0
brutushafens 16.06.2014 21:35 # +1
kegdan 16.06.2014 21:36 # 0
brutushafens 16.06.2014 21:38 # +1
Soul_re@ver 16.06.2014 21:26 # 0
brutushafens 16.06.2014 21:27 # +1
kegdan 16.06.2014 21:32 # +1
меня терзают смутное сомнение, что ты знаешь только 2 языка
brutushafens 16.06.2014 21:36 # +1
kegdan 16.06.2014 21:38 # +1
brutushafens 16.06.2014 21:41 # +1
kegdan 16.06.2014 21:42 # +1
brutushafens 16.06.2014 21:44 # +1
kegdan 16.06.2014 21:50 # 0
brutushafens 16.06.2014 21:53 # +2
kegdan 16.06.2014 21:54 # 0
kegdan 16.06.2014 23:19 # +2
bormand 16.06.2014 23:21 # 0
Я тоже правлю комменты. И ты правь комменты.
kegdan 16.06.2014 23:23 # +4
стих вам на ночь
Пуста флудильня, гаснут свечи
Уснули тролли под мостом
И с кофе самка человечья
Тоскливо думает о Нём
Свирепой мамкой погоняем
Уходит юный падаван
Хотя в душе, мы точно знаем,
Желает грабить корован
Прекрасный рыцарь интернета
Натружено шлифует меч
Созданья тьмы, созданья света
Вновь разошлись до новых сечь
Но завтра тут наступит битва
И снова рак пойдет на мид
Окамма отвергая бритву
Здесь будет гарцевать джигит
Воскреснет ненависти слово
Во имя преданной любви
Ну а пока лишь сонный модер
Банхаммер чистит от крови
1024-- 16.06.2014 23:21 # +1
Или применять цитирование.
Как-то раз я попался на это :)
brutushafens 17.06.2014 17:40 # +2
bormand 16.06.2014 21:51 # +1
Прикольная структура данных, кстати. Чувствую себя царем ;(
kegdan 16.06.2014 21:53 # 0
bormand 16.06.2014 21:57 # 0
Но зачем? Неужели такой жесткий дефицит пямяти был?
brutushafens 16.06.2014 21:59 # +1
absolut 16.06.2014 22:00 # 0
По талонам тогда еще выдавали.
kegdan 16.06.2014 22:17 # 0
1024-- 16.06.2014 21:52 # +1
Soul_re@ver 16.06.2014 21:18 # +1
bormand 16.06.2014 21:30 # +1
В делфи никогда не хотелось повесить на один ивент два разных обработчика? Ну или пристегнуть к обработчику некий контекст, например значение переменной вместо упихивания этого контекста в свойство tag или как там его у вас.
> stringBUILDER
Не хочешь - не юзай. Можешь просто складывать строки. СтроительВеревок нужен исключительно ради производительности (и неплохо повышает ее, если тебе надо 100500 строк поклеить).
kegdan 16.06.2014 21:31 # 0
brutushafens 16.06.2014 21:34 # +1
brutushafens 16.06.2014 21:50 # +1
bormand 16.06.2014 22:05 # +1
Просто иногда хотелось навесить на элемент управления некое "поведение" (т.е. набор реакций на ивенты) и при этом лениво было его сабклассить (в делфи же нужно было либо регать свой класс как компонент (что довольно противно, особенно в отладке), либо создавать инстансы врукопашную в OnCreate формы...). Если можно навесить только один обработчик - так не получится.
brutushafens 16.06.2014 21:37 # +1