Junior — Middle
Από ποιον τυπικό κοντέινερ υλοποιείται η δομή δεδομένων map;
sobes.tech AI
Απάντηση από AI
Στη βιβλιοθήκη standard της C++, η δομή δεδομένων std::map υλοποιείται με βάση το κόκκινο-μαύρο δέντρο (Red-Black Tree). Είναι ένα ισορροπημένο δυαδικό δέντρο αναζήτησης που εξασφαλίζει χρόνους λογαρίθμου για την εισαγωγή, διαγραφή και αναζήτηση στοιχείων.
Στη C++, το std::map είναι ένας συσχετιστικός κοντέινερ που αποθηκεύει ζεύγη κλειδιού-τιμής σε ταξινομημένη σειρά με βάση το κλειδί. Χάρη στο κόκκινο-μαύρο δέντρο, το δέντρο διατηρείται ισορροπημένο και οι λειτουργίες είναι αποδοτικές.
Παράδειγμα χρήσης του std::map:
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap;
myMap[1] = "ένα";
myMap[2] = "δύο";
myMap[3] = "τρία";
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
Επομένως, το std::map βασίζεται σε ένα ισορροπημένο δέντρο και όχι σε έναν πίνακα κατακερματισμού (για πίνακες κατακερματισμού χρησιμοποιείται το std::unordered_map).