logo

C++ kortfunktion

Kort er en del af C++ STL (Standard Template Library). Kort er de associative beholdere, der gemmer sorteret nøgle-værdi-par, hvor hver nøgle er unik, og den kan indsættes eller slettes, men kan ikke ændres. Værdier forbundet med nøgler kan ændres.

For eksempel: Et kort over medarbejdere, hvor medarbejder-id er nøglen, og navn er værdien, kan repræsenteres som:

Nøgler Værdier
101 Nikita
102 Robin
103 Dyb
104 John

Syntaks

 template <class key, map::key_type class t, map::mapped_type compare="less," map::key_compare alloc="allocator&lt;pair"> // map::allocator_type &gt; class map; </class>

Parameter

nøgle: Nøgledatatypen, der skal gemmes på kortet.

type: Datatypen for værdi, der skal gemmes på kortet.

sammenligne: En sammenligningsklasse, der tager to argumenter af samme type bool og returnerer en værdi. Dette argument er valgfrit, og det binære prædikat mindre er standardværdien.

allok: Type af allokeringsobjektet. Dette argument er valgfrit, og standardværdien er allokator.

json data eksempel

Oprettelse af et kort

Kort kan nemt oprettes ved hjælp af følgende erklæring:

 typedef pair value_type; 

Ovenstående formular vil bruges til at oprette et kort med nøgle af typen Nøgletype og typens værdi værdi type. En vigtig ting er, at nøglen til et kort og tilsvarende værdier altid indsættes som et par, du kan ikke indsætte kun nøgle eller kun en værdi i et kort.

Eksempel 1

 #include #include #include #include using namespace std; int main() { map Employees; // 1) Assignment using array index notation Employees[101] = &apos;Nikita&apos;; Employees[105] = &apos;John&apos;; Employees[103] = &apos;Dolly&apos;; Employees[104] = &apos;Deep&apos;; Employees[102] = &apos;Aman&apos;; cout &lt;&lt; &apos;Employees[104]=&apos; &lt;&lt; Employees[104] &lt;&lt; endl &lt;&lt; endl; cout &lt;&lt; &apos;Map size: &apos; &lt;&lt; Employees.size() &lt;&lt; endl; cout &lt;&lt; endl &lt;&lt; &apos;Natural Order:&apos; &lt;&lt; endl; for( map::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii) { cout &lt;&lt; (*ii).first &lt;&lt; &apos;: &apos; &lt;&lt; (*ii).second &lt;&lt; endl; } cout &lt;&lt; endl &lt;&lt; &apos;Reverse Order:&apos; &lt;&lt; endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout &lt;&lt; (*ii).first &lt;&lt; &apos;: &apos; &lt;&lt; (*ii).second &lt;&lt; endl; } } 

Produktion:

 Employees[104]=Deep Map size: 5 Natural Order: 101: Nikita 102: Aman 103: Dolly 104: Deep 105: John Reverse Order: 105: John 104: Deep 103: Dolly 102: Aman 101: Nikita 

Medlemsfunktioner

Nedenfor er listen over alle medlemsfunktioner på kortet:

Bygmester/ødelægger

Funktioner Beskrivelse
konstruktører Konstruer kort
ødelæggere Kortdestruktor
operatør= Kopier elementer af kortet til et andet kort.

Iteratorer

Funktioner Beskrivelse
begynde Returnerer en iterator, der peger på det første element i kortet.
cbegynde Returnerer en konst iterator, der peger på det første element i kortet.
ende Returnerer en iterator, der peger på fortiden.
nogle få Returnerer en konstant iterator, der peger på fortiden.
begynde Returnerer en omvendt iterator, der peger mod slutningen.
gør Returnerer en omvendt iterator, der peger mod begyndelsen.
begynde Returnerer en konstant omvendt iterator, der peger mod slutningen.
tro på Returnerer en konstant omvendt iterator, der peger på begyndelsen.

Kapacitet

Funktioner Beskrivelse
tom Returnerer sandt, hvis kortet er tomt.
størrelse Returnerer antallet af elementer på kortet.
max_størrelse Returnerer den maksimale størrelse på kortet.

Elementadgang

Funktioner Beskrivelse
operatør[] Hent elementet med den angivne nøgle.
Hent elementet med den angivne nøgle.

Modifikatorer

Funktioner Beskrivelse
indsætte Indsæt element i kortet.
slette Slet elementer fra kortet.
bytte rundt Udveksle indholdet af kortet.
klar Slet alle elementer på kortet.
Beliggenhed Konstruer og indsæt de nye elementer i kortet.
emplace_hint Konstruer og indsæt nye elementer i kortet ved hjælp af tip.

Observatører

Funktioner Beskrivelse
key_comp Returner en kopi af nøglesammenligningsobjektet.
værdi_komp Returner en kopi af værdisammenligningsobjektet.

Operationer

Funktioner Beskrivelse
Find Søg efter et element med en given nøgle.
tælle Får antallet af elementer, der matcher med en given nøgle.
nedre grænse Returnerer en iterator til nedre grænse.
øvre grænse Returnerer en iterator til øvre grænse.
lige_område Returnerer rækken af ​​elementer, der matcher med en given nøgle.

Fordeler

Funktioner Beskrivelse
get_allocator Returnerer et allokeringsobjekt, der bruges til at konstruere kortet.

Ikke-medlemmer overbelastede funktioner

Funktioner Beskrivelse
operatør== Kontrollerer, om de to kort er ens eller ej.
operatør!= Kontrollerer, om de to kort er ens eller ej.
operatør< Kontrollerer, om det første kort er mindre end det andet eller ej.
operatør<=< td> Kontrollerer, om det første kort er mindre end eller lig med det andet eller ej.
operatør> Kontrollerer, om det første kort er større end det andet eller ej.
operatør>= Kontrollerer, om det første kort er større end lig med det andet eller ej.
bytte rundt() Udveksler elementet af to kort.