This is an old revision of the document!
std::unordered_map και std::unordered_multimap
Ένα std::unordered_map αποτελεί ένα σύνολο μοναδικών στοιχείων, όπου κάθε τέτοιο στοιχείο αποτελεί κλειδί για την εύρεση ή αντιστοίχιση του με ένα άλλο αντικείμενο που ονομάζουμε “τιμή” (value). Κάθε κλειδί προσδιορίζει μοναδικά μία “τιμή”, η οποία δεν είναι απαραίτητο να είναι μοναδική (οι τιμές μπορεί να επαναλαμβάνονται).
Τα κλειδιά του std::unordered_map είναι αποθηκευμένα σε ένα πίνακα κατακερματισμού με αλύσίδες (Hash_table#Separate_chaining).
Η κατάταξη ενός νέου ζεύγους κλειδιού-τιμής γίνεται πάντα μέσω της συνάρτησης κατακερματισμού (hash function), η οποία εξαρτάται από το είδος των κλειδιών που αποθηκεύονται στο map. Το ακόλουθο σχήμα περιγράφει συνοπτικά τη δομή της κλάσης unordered_map.
![]() |
Σχήμα 1. Η δομή της κλάσης std::unordered_map (Πηγή: conglang.github.io) |