spamsink: (Default)
[personal profile] spamsink


std::set<int>, когда их много больших (тысячи элементов) похожих друг на друга и сделанных друг из друга, сосёт у __gnu_cxx::rope<int> большое время (100x) и большую память (>100x). Очень рекомендую.

Date: 2012-07-28 12:51 am (UTC)
From: [identity profile] ygam.livejournal.com
Я забыл: set - это двоичное дерево, а хэш-таблица - это hash_set? Я на сиплюсплюсе писал в последний раз в 2007 году.

Date: 2012-07-28 01:35 am (UTC)
yigal_s: (Default)
From: [personal profile] yigal_s
хммм... милая штучка.

и что, вы на этой структуре бинарный поиск сделали, я верно понимаю???

Date: 2012-07-28 02:31 am (UTC)
yigal_s: (Default)
From: [personal profile] yigal_s
я верно понимаю, что сложность lower_bound у вас будет (log n)^2

???

Date: 2012-07-28 03:11 am (UTC)
yigal_s: (Default)
From: [personal profile] yigal_s
так ведь тогда и получение неконстантного итератора всего-то дает log n * (log n + 1) в совокупности, что не так чтоб сильно хуже

Date: 2012-07-28 02:47 am (UTC)
From: [identity profile] fatoff.livejournal.com
Да, как-то раз для map с многими тысячами строк был придуман аллокатор, чтобы писать всё в contiguous memory. Пусть даже на поверхности нерационально, резервировалась максимальная длина для каждой выделяемой строчки, оно получилось менее сосущее и по памяти, и по скорости, чем map с аллокатором по умолчанию.

Date: 2012-07-28 03:05 am (UTC)
From: [identity profile] fatoff.livejournal.com
Может... вместо верёвкового решения пойдёт? Вопрос, как правильно упаковать, и как поддерживать достаточно большую непрерывную область памяти. Ну, memory-mapped file поддерживается и в *nix.

Date: 2012-07-28 05:51 am (UTC)
From: [identity profile] fatoff.livejournal.com
Понятно, какие-то невероятно длинные строки, хранимые в set.
Edited Date: 2012-07-28 05:55 am (UTC)

Date: 2012-07-28 09:27 pm (UTC)
From: [identity profile] sasha-gil.livejournal.com
Ой, а я почему-то под словами "C++ STL, так штаааа...." вижу ссылку http://spamsink.livejournal.com/444210.html# - то есть ничего не вижу - получается, я уже пропустил интересное, или у меня браузер неправильный?

Date: 2012-07-30 06:08 pm (UTC)
From: [identity profile] sab123.livejournal.com
Я так понимаю, что главная фича множества - возможность быстро проверить, является ли некое значение элементом множества, при этом теряется?

Date: 2012-07-30 06:33 pm (UTC)
From: [identity profile] sab123.livejournal.com
Ну и плюс его надо написать, и плюс для этого должны быть слабоменяющиеся множества (а не то их формирование будет дорогим).

Date: 2012-07-30 07:53 pm (UTC)
From: [identity profile] sab123.livejournal.com
Двоичный поиск? Хотя вроде там был какой-то готовый STLный.

Date: 2012-07-30 06:34 pm (UTC)
From: [identity profile] sab123.livejournal.com
Кстати, а последовательных диапазонов в данных нету? А то еще и на них можно сэкономить.
Page generated Mar. 5th, 2026 12:56 pm
Powered by Dreamwidth Studios