C++ У цій хеш-функції рядка ми починаємо з хешу 5381. Потім, для кожного символу в рядку ми множимо поточний хеш на 33 (ефективно це робиться як (хеш << 5) + хеш), а потім додаємо значення ASCII символу. Це дає нам хеш-значення, яке є унікальним для різних рядків.
Хешування реалізується в два етапи: Елемент перетворюється на ціле число за допомогою хеш-функції. Цей елемент можна використовувати як індекс для зберігання вихідного елемента, який потрапляє в хеш-таблицю. Елемент зберігається в хеш-таблиці, де його можна швидко отримати за допомогою хешованого ключа.
Як використовувати HashMap у C++? HashMap — це структура даних, у якій елементи зберігаються в парах ключ-значення, так що кожен ключ зіставляється зі значенням за допомогою хеш-функції. У C++ реалізовані хеш-карти за допомогою контейнерного класу unordered_map.
Більшість алгоритмів хешування дотримуються цього процесу:
- Створіть повідомлення. Користувач визначає, що потрібно хешувати.
- Виберіть тип. Існують десятки алгоритмів хешування, і користувач може вирішити, який найкраще працює для цього повідомлення.
- Введіть повідомлення. …
- Запустіть хеш. …
- Зберігайте або діліться.
Хеш-функції в C++ Хеш-функції часто зустрічаються в C++. Іноді ми не помічаємо, де вони. Наприклад, std::unordered_map і std::unordered_set використовують саме цей алгоритм для зберігання даних і швидкого доступу до них. Ці контейнери називаються хеш-таблицями.