logo

Kort i C++ Standard Template Library (STL)

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 gquiz2(gquiz1.begin(), gquiz1.end()); // udskriv alle elementer af kortet gquiz2 cout<< ' The map gquiz2 after' << ' assign from gquiz1 is : '; cout << ' KEY ELEMENT '; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } cout << endl; // remove all elements up to // element with key=3 in gquiz2 cout << ' gquiz2 after removal of' ' elements less than key=3 : '; cout << ' KEY ELEMENT '; gquiz2.erase(gquiz2.begin(), gquiz2.find(3)); for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } // remove all elements with key = 4 int num; num = gquiz2.erase(4); cout << ' gquiz2.erase(4) : '; cout << num << ' removed '; cout << ' KEY ELEMENT '; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } cout << endl; // lower bound and upper bound for map gquiz1 key = 5 cout << 'gquiz1.lower_bound(5) : ' << ' KEY = '; cout ' '; cout << ' ELEMENT = ' << endl; cout << 'gquiz1.upper_bound(5) : ' << ' KEY = '; cout ' '; cout << ' ELEMENT = ' << endl; return 0; }>

>

>

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.