Sobes.tech
Junior — Middle

Kokio standarto konteineryje įgyvendinta duomenų struktūra map?

sobes.tech AI

Atsakymas iš AI

C++ standartinėje bibliotekos struktūroje std::map yra įgyvendinta remiantis raudonai-juodu medžiu (Red-Black Tree). Tai subalansuotas dvejopo paieškos medis, kuris užtikrina logaritminį laiką elementų įterpimui, šalinimui ir paieškai.

C++ kalboje std::map yra asociatyvinis konteineris, kuris saugo poras raktas-reikšmė išrikiuotas pagal raktą. Dėka raudonai-juodo medžio, medis yra subalansuotas, o operacijos efektyvios.

std::map naudojimo pavyzdys:

#include <iostream>
#include <map>

int main() {
    std::map<int, std::string> myMap;
    myMap[1] = "vienas";
    myMap[2] = "du";
    myMap[3] = "trys";

    for (const auto& pora : myMap) {
        std::cout << pora.first << ": " << pora.second << std::endl;
    }
    return 0;
}

Todėl std::map yra pagrįstas subalansuotu medžiu, o ne maišos lentele (maišos lentelėms naudojama std::unordered_map).