Неупорядоченные карты — это мощная структура данных в C++, обеспечивающая эффективное хранение и извлечение значений ключей. Они являются частью стандартной библиотеки шаблонов (STL) и предлагают гибкую альтернативу упорядоченным картам, таким как карты и наборы. В этой статье мы углубимся в размер неупорядоченных карт и рассмотрим различные методы, которые можно использовать с этим универсальным контейнером.
Понимание размера неупорядоченных карт.
Размер неупорядоченной карты определяется количеством содержащихся в ней элементов. Эта информация важна для управления памятью и оптимизации производительности. Чтобы определить размер неупорядоченной карты, вы можете использовать метод size, который возвращает количество пар ключ-значение, хранящихся на карте.
Пример:
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> myMap;
myMap["apple"] = 3;
myMap["banana"] = 5;
myMap["orange"] = 2;
std::cout << "Size of myMap: " << myMap.size() << std::endl;
return 0;
}
Выход:
Size of myMap: 3
Общие методы для неупорядоченных карт:
- Вставка. Вы можете добавлять элементы на неупорядоченную карту с помощью метода
insert. В качестве входных данных принимается пара «ключ-значение» или диапазон пар «ключ-значение».
Пример:
std::unordered_map<int, std::string> myMap;
myMap.insert(std::make_pair(1, "apple"));
myMap.insert({2, "banana"});
- Доступ к элементам. Используйте квадратную скобку
[]для доступа к элементам неупорядоченной карты по их ключам. Если ключ не существует, он вставляется со значением по умолчанию.
Пример:
std::string fruit = myMap[1]; // Access value associated with key 1 ("apple")
- Стирание элементов. Чтобы удалить элементы из неупорядоченной карты, вы можете использовать метод
erase, передав либо определенный ключ, либо диапазон ключей, которые нужно удалить.
Пример:
myMap.erase(2); // Erase element with key 2
- Поиск элементов. Метод
findпозволяет искать определенный ключ на неупорядоченной карте. Он возвращает итератор, указывающий на элемент, если он найден, или итератор, указывающий на конец, если ключ отсутствует.
Пример:
auto it = myMap.find(1);
if (it != myMap.end()) {
std::cout << "Value found: " << it->second << std::endl;
}
- Проверка существования: вы можете проверить, существует ли ключ в неупорядоченной карте, используя метод
count, который возвращает либо 0, либо 1.
Пример:
if (myMap.count(1) > 0) {
std::cout << "Key 1 exists." << std::endl;
}
В этой статье мы исследовали концепцию размера неупорядоченных карт и обсудили различные методы, которые можно использовать с этой динамической структурой данных. Понимание размера неупорядоченной карты позволяет эффективно управлять памятью и оптимизировать производительность. Используя такие методы, как вставка, доступ, стирание, поиск и проверка существования, вы можете использовать возможности неупорядоченных карт в своих программах на C++.