Kort er associative beholdere der lagrer elementer på en kortlagt måde. Hvert element har en nøgleværdi og en tilknyttet værdi. Ingen to tilknyttede værdier kan have de samme nøgleværdier.
std::map er klasseskabelonen for kortcontainere, og den er defineret inde i header-filen.
Grundlæggende std::map Medlemsfunktioner
Nogle grundlæggende funktioner forbundet med std::map er:
- begynde() – Returnerer en iterator til det første element på kortet.
- ende() – Returnerer en iterator til det teoretiske element, der følger efter det sidste element i kortet.
- størrelse() – Returnerer antallet af elementer på kortet.
- max_size() – Returnerer det maksimale antal elementer, som kortet kan indeholde.
- tom() – Returnerer, om kortet er tomt.
- parindsæt (nøgleværdi, kortværdi) – Tilføjer et nyt element til kortet.
- slet (iterator position) – Fjerner elementet i den position, som iteratoren peger på.
- slette(konst g) – Fjerner nøgleværdien 'g' fra kortet.
- klar() – Fjerner alle elementer fra kortet.
Eksempler på std::map
De følgende eksempler viser, hvordan man udfører grundlæggende handlinger på kortcontainere.
Eksempel 1: start() og end() Funktion
C++
// C++ program to illustrate the begin and end iterator> #include> #include> #include> using> namespace> std;> int> main()> {> > // Create a map of strings to integers> > mapint>smp; // Indsæt nogle værdier i kortet mp['one'] = 1; mp['to'] = 2; mp['tre'] = 3; // Få en iterator, der peger på det første element i // map-kortet>::iterator it = mp.begin(); // Iterér gennem kortet og udskriv elementerne, mens (it != mp.end()) { cout<< 'Key: ' << ', Value: ' ++it; } return 0; }> |
>
10 af 50
>Produktion
Key: one, Value: 1 Key: three, Value: 3 Key: two, Value: 2>
Kompleksiteten af ovenstående metode:
Tidskompleksitet: O(n) hvor n er størrelsen af kortet.
Hjælpeplads: På)
Eksempel 2: size() funktion
C++
// C++ program to illustrate the size() function> #include> #include> #include> using> namespace> std;> int> main()> {> > // Create a map of strings to integers> > mapint>kort; // Indsæt nogle værdier i kortkortet['one'] = 1; kort['to'] = 2; kort['tre'] = 3; // Udskriv størrelsen på kortet<< 'Size of map: ' << map.size() << endl; return 0; }> |
>
>Produktion
Size of map: 3>
Kompleksiteten af ovenstående metode:
Tidskompleksitet: O(1).
Eksempel 3: Implementeringskort
CPP
// CPP Program to demonstrate the implementation in Map> // divyansh mishra -->divyanshmishra101010> #include> #include> #include> using> namespace> std;> int> main()> {> > // empty map container> > map<> int> ,> int> >gquiz1;> > // insert elements in random order> > gquiz1.insert(pair<> int> ,> int> >(1, 40));> > gquiz1.insert(pair<> int> ,> int> >(2, 30));> > gquiz1.insert(pair<> int> ,> int> >(3, 60));> > gquiz1.insert(pair<> int> ,> int> >(4, 20));> > gquiz1.insert(pair<> int> ,> int> >(5, 50));> > gquiz1.insert(pair<> int> ,> int> >(6, 50));> > // another way of inserting a value in a map> > gquiz1[7] = 10;> > // printing map gquiz1> > map<> int> ,> int> >::iterator itr;> > cout <<> '
The map gquiz1 is :
'> ;> > cout <<> ' KEY ELEMENT
'> ;> > for> (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr) {> > cout <<> ' '> ' ' << '
'; } cout << endl; // assigning the elements from gquiz1 to gquiz2 map |
>
>Produktion
The map gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 The map gquiz2 after assign from gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 gquiz2 after remov...>
Kompleksiteten af ovenstående metode:
Tidskompleksitet: O(n log(n)), da n er størrelsen af kortet
Hjælpeplads: På)
Eksempel 4: Implementering af kort over heltal
C++
// C++ program to implement map container> #include> #include> #include> using> namespace> std;> int> main()> {> > // Create a map of strings to integers> > mapint>kort; // Indsæt nogle værdier i kortkortet['one'] = 1; kort['to'] = 2; kort['tre'] = 3; // Udskriv værdierne i kortet<< 'Key: one, Value: ' << map['one'] << endl; cout << 'Key: two, Value: ' << map['two'] << endl; cout << 'Key: three, Value: ' << map['three'] << endl; // Check if a key is in the map if (map.count('four')>0) { cout<< 'Key 'four' is in the map' << endl; } else { cout << 'Key 'four' is not in the map' << endl; } return 0; }> |
>
>Produktion
Key: one, Value: 1 Key: two, Value: 2 Key: three, Value: 3 Key 'four' is not in the map>
Liste over alle funktioner i std::map
Følgende tabel indeholder alle de funktioner, der er defineret i std::map-klassen.
Fungere | Definition |
---|---|
map::insert() | Indsæt elementer med en bestemt nøgle i kortbeholderen –> O(log n) |
kort:: tælle() | Returnerer antallet af match til element med nøgleværdien 'g' på kortet. –> O(log n) |
kort lige_område() | Returnerer en iterator af par. Parret refererer til grænserne for et interval, der inkluderer alle elementer i beholderen, som har en nøgle svarende til k. |
kort slette() | Bruges til at slette elementer fra beholderen –> O(log n) |
kort rend() | Returnerer en omvendt iterator, der peger på det teoretiske element lige før det første nøgleværdi-par i kortet (som betragtes som dets omvendte ende). hvordan man downloader youtube videoer vlc |
kort rbegin()
| Returnerer en omvendt iterator, som peger på det sidste element på kortet. |
kort find() | Returnerer en iterator til elementet med nøgleværdien 'g' i kortet, hvis den findes, ellers returnerer iteratoren til slutningen. |
kort crbegin() og crend() | crbegin() returnerer en konstant omvendt iterator, der henviser til det sidste element i kortbeholderen. crend() returnerer en konstant omvendt iterator, der peger på det teoretiske element før det første element i kortet. |
kort cbegin() og cend() | cbegin() returnerer en konstant iterator, der henviser til det første element i kortbeholderen. cend() returnerer en konstant iterator, der peger på det teoretiske element, der følger efter det sidste element i multimap'et. |
map emplace() | Indsætter nøglen og dens element i kortbeholderen. |
kort max_size() | Returnerer det maksimale antal elementer, en kortbeholder kan indeholde –> O(1) |
kort øvre_grænse() | Returnerer en iterator til det første element, der svarer til kortlagt værdi med nøgleværdien 'g' eller vil helt sikkert gå efter elementet med nøgleværdien 'g' i kortet |
kortoperatør= | Tildeler indholdet af en beholder til en anden beholder og erstatter dens nuværende indhold. |
kort nedre_grænse() | Returnerer en iterator til det første element, der svarer til den tilknyttede værdi med nøgleværdien 'g' eller absolut ikke vil gå før elementet med nøgleværdien 'g' i kortet -> O(log n) |
kort emplace_hint() | Indsætter nøglen og dens element i kortbeholderen med et givet tip. |
kort værdi_komp() | Returnerer det objekt, der bestemmer, hvordan elementerne i kortet er ordnet ('<' som standard). |
map key_comp() | Returnerer det objekt, der bestemmer, hvordan elementerne i kortet er ordnet ('<' som standard). |
kort::størrelse() | Returnerer antallet af elementer på kortet. |
map::empty() | Returnerer, om kortet er tomt |
map::begin() og end() | begin() returnerer en iterator til det første element i kortet. end() returnerer en iterator til det teoretiske element, der følger efter det sidste element i kortet |
map::operatør[] | Denne operatør bruges til at referere til det element, der er til stede på den angivne position inde i operatøren. |
map::clear() | Fjerner alle elementer fra kortet. |
map::at() og map::swap() | at()-funktionen bruges til at returnere referencen til det element, der er knyttet til nøglen k. swap()-funktionen bruges til at udveksle indholdet af to kort, men kortene skal være af samme type, selvom størrelserne kan variere. |