Middle
Kā ir strukturēts std::map konteineris C++-ā?
sobes.tech AI
Atbilde no AI
std::map C++ ir ir asocitatīvs konteineris, kas glabā pārus atslēga-vērtība, kārtojot tos pēc atslēgas. Iekšēji tas parasti tiek realizēts kā līdzsvarots binārais koks (piemēram, sarkans-melns koks), kas nodrošina piekļuves, ievietošanas un dzēšanas laiku logaritmiskā skalā.
Galvenās īpašības:
- Atslēgas ir unikālas.
- Elementi ir kārtoti pēc atslēgas, izmantojot salīdzinātāju (pēc noklusējuma
std::less<Key>). - Tas glabā elementus koka mezglos, katrs mezgls satur pāri
std::pair<const Key, T>.
Piemērs lietošanai:
#include <map>
#include <iostream>
int main() {
std::map<int, std::string> m;
m[10] = "ten";
m[5] = "five";
m[20] = "twenty";
for (const auto& [key, value] : m) {
std::cout << key << ": " << value << '\n';
}
return 0;
}
Šajā piemērā elementi tiks izvadīti pēc atslēgas kārtības: 5, 10, 20.
Atmiņa tiek dinamiski piešķirta koka mezgliem, un atmiņas pārvaldība notiek konteinerā. Izņemot elementus vai iznīcinot konteineru, atmiņa tiek automātiski atbrīvota.