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

Но у меня появилась новый небольшой вопрос) Какая разница между std::map

и std::unordered_map? Если они все равно по идее хранят пары ключ-значения в виде без строгой последовательности (так как хэшируют значения)?

11 ответов

19 просмотров

std::map не хэширует никакие значения (а правильнее, конечно, ключи) Там они как раз строго упорядочены (в смысле отношения порядка <) Как следствие - логарифмический поиск, вставка, etc.

Разные реализации, map - красно-чёрное дерево, unordered_map - хэш-таблица.

std::map хранит ключи в строго упорядоченной последовательности.

Рамзан-Костин Автор вопроса
Ilya Zviagin
Разные реализации, map - красно-чёрное дерево, uno...

понятно, думал там хэш-таблица используется. спасибо

Рамзан Костин
А как же std::hash<>?

А где ты его в std::map увидел? Там как раз есть аргумент шаблона Compare = std::less<Key>

Рамзан-Костин Автор вопроса
Georgy Firsov
А где ты его в std::map увидел? Там как раз есть а...

похоже перепутал. Но вроде смотрел в стандартной библиотеке и там в мапе был std::hash. может я путаю с чем-то другим

Рамзан-Костин Автор вопроса
Ilya Zviagin
@closeytb

я так и понял, спасибо)

Рамзан Костин
похоже перепутал. Но вроде смотрел в стандартной б...

С std::unordered_map как раз: "std::unordered_map - cppreference.com" https://en.cppreference.com/w/cpp/container/unordered_map "std::map - cppreference.com" https://en.cppreference.com/w/cpp/container/map

Georgy Firsov
С std::unordered_map как раз: "std::unordered_map ...

К слову, стандарт не регламентирует метод реализации, а только асимптотику операций и интерфейс Но обычно (да и в принципе я иных реализаций не встречал), как Илья верно заметил, std::map - RB-дерево, std::unordered_map - хэш-таблица

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта