Sobes.tech
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).