Unordered Map: эффективная структура данных для хранения пары ключ-значение
// Подключение необходимых заголовочных файлов
#include <iostream>
#include <unordered_map>
#include <string>
int main() {
// Создание unordered_map с именем studentGrades
std::unordered_map<std::string, float> studentGrades;
// Добавление элементов в unordered_map
studentGrades["Alice"] = 4.2;
studentGrades["Bob"] = 3.9;
studentGrades["Charlie"] = 4.5;
// Поиск значения по ключу
std::string name = "Alice";
if (studentGrades.find(name) != studentGrades.end()) {
float grade = studentGrades[name];
std::cout << "Средний балл студента " << name << ": " << grade << std::endl;
} else {
std::cout << "Студент с именем " << name << " не найден" << std::endl;
}
// Удаление элемента по ключу
name = "Bob";
studentGrades.erase(name);
// Итерация по всем элементам unordered_map
for (const auto& pair : studentGrades) {
std::cout << "Студент: " << pair.first << ", Средний балл: " << pair.second << std::endl;
}
return 0;
}
`Unordered map` (или `unordered_map`) является одним из контейнеров в стандартной библиотеке C++, предоставляемых классом `unordered_map`, который реализует хеш-таблицу. `Unordered map` позволяет хранить пары ключ-значение, где каждому ключу соответствует уникальное значение.
Размер `unordered_map` автоматически расширяется при добавлении новых элементов и сокращается при их удалении. Время доступа к данным является O(1), что делает `unordered_map` очень эффективным для поиска элементов по ключу.
Рассмотрим пример использования `unordered_map`. Предположим, у нас есть набор данных о студентах, и каждому студенту поставлен в соответствие его средний балл. Мы хотим создать `unordered_map`, чтобы легко находить средний балл студента по его имени.