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<pair"> // map::allocator_type > 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] = 'Nikita'; Employees[105] = 'John'; Employees[103] = 'Dolly'; Employees[104] = 'Deep'; Employees[102] = 'Aman'; cout << 'Employees[104]=' << Employees[104] << endl << endl; cout << 'Map size: ' << Employees.size() << endl; cout << endl << 'Natural Order:' << endl; for( map::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << endl; } cout << endl << 'Reverse Order:' << endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << 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. |
på | 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. |