C++/Unordered map
W języku C++ unordered_map jest implementacją mapy, która używa tablicy skrótów do przechowywania par klucz-wartość, zapewniając szybszy czas dostępu niż standardowa implementacja mapy. Oto przykład użycia unordered_map w standardowej bibliotece szablonów C++ (STL):
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
unordered_map<string, int> myMap; // create an empty unordered map
// insert elements
myMap["apple"] = 5;
myMap["banana"] = 7;
myMap["cherry"] = 3;
myMap["date"] = 9;
// check if a key exists in the map
if (myMap.count("banana") > 0) {
cout << "There are " << myMap["banana"] << " bananas" << endl;
}
// iterate over the key-value pairs
for (const auto& pair : myMap) {
cout << pair.first << ": " << pair.second << endl;
}
// clear the map
myMap.clear();
return 0;
}
W tym przykładzie najpierw tworzymy pustą mapę unordered_map, która odwzorowuje ciągi znaków na liczby całkowite o nazwie myMap. Następnie używamy operatora [], aby wstawić pary klucz-wartość do mapy.
Następnie używamy metody count, aby sprawdzić, czy klucz istnieje na mapie, oraz ponownie operatora [], aby pobrać wartość powiązaną z kluczem. Następnie używamy opartej na zakresie pętli for do iteracji par klucz-wartość na mapie oraz metody clear do usunięcia wszystkich par z mapy.
Należy zauważyć, że unordered_map ma podobną funkcjonalność do innych kontenerów C++ STL, takich jak mapa, wektor i zestaw, ale ma inną charakterystykę wydajności. Na przykład unordered_map zapewnia stałą średnią złożoność operacji wstawiania, usuwania i wyszukiwania, ale zużywa więcej pamięci niż implementacja mapy.