#новичкам
Сегодня разберём один из самых полезных контейнеров в C++ — std::map. Это не просто "ассоциативный массив", а гибкая структура данных, которая автоматически упорядочивает элементы по ключам и позволяет эффективно работать с парами "ключ-значение".
Для начала создадим пустую структуру, например, для хранения возрастов:
std::map<std::string, int> ages;
После этого мы можем добавить элементы:
ages["Alice"] = 25;
ages["Bob"] = 30;
Элементы добавляются в виде пар: строка — это ключ, а число — значение. И чтобы получить значение по ключу
int aliceAge = ages["Alice"]; // 25
Но есть важный момент! Если ключа не существует,
std::map
автоматически создаёт новый элемент с дефолтным значением (например, 0 для чисел). Чтобы избежать этого, используем метод find()
:if (ages.find("Charlie") != ages.end()) {
std::cout << "Charlie найден!\n";
} else {
std::cout << "Charlie отсутствует.\n";
}
А вот удаление элементов выполняется с помощью метода
erase()
:ages.erase("Alice"); // Удаляет элемент с ключом "Alice"
Вот вам под конец полезный трюк: Можно легко обойти все элементы в
std::map
с помощью цикла for
:for (const auto& [key, value] : ages) {
std::cout << key << ": " << value << '\n';
}
🔥 Но помните, что std::map не такой быстрый, как unordered_map, для операций поиска. Используйте его, если вам важна упорядоченность.