170 похожих чатов

Господа эксперты, добрый день. Посоветуйте, пожалуйста, нужен совет по поводу

необходимости перехода с set на какую-нибудь хеш-таблицу. Есть большой set<vector<char» забитый уникальными векторами одной длины (порядка 20), значения чаров положительны. Причем это, как я понимаю, красно-черное дерево, забито у меня на приблизительно на 100 лямов. Забито по дефолту, без дополнительных танцев, сравнение векторов оказывается встроено. В коде очень много обращений к нему, речь о сотнях миллионов. Происходит только проверка на присутсвие вектора и добавление в случае отсутсвия, удаления нет. Все это долго, хочется оптимизировать. Вопрос такой - будет ли профит (имеется в виду время проверки и вставки) от перехода с set на какой нибудь unordered_multimap (или на что-то ещё в плюсах)? Поскольку вектор чаров, то можно по разному хеш устраивать (как я понимаю). Обгонит ли какой-нибудь хеш в логарифмический set или не стоит копья ломать?

4 ответов

4 просмотра

если ты уберешь vector уже будет хорошо и перейдешь на свой класс с std::array-ей внутри, написав operator< и operator==

Ты увенен, что это хороший вопрос для чата ДЛЯ НАЧИНАЮЩИХ?

Тебе надо понять прежде всего, за счёт чего долго. Это поможет сделать профилирование

set<vector<char» очень медленная с точки зрения константы реализация. Если укажете без XY для чего он нужен, расскажу, как делать

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
как быть с принтером? такой подход прокатит?
zamtmn
12
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
This is a big issue. Just by being a citizen of a country, you are denied to contribute to Open Source software: https://youtu.be/L5Ec5jrpLVk?si=1iIuHnMPbCB4anV-
Sharuzzaman Ahmat Raslan
72
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Карта сайта