Kart er en del av C++ STL (Standard Template Library). Kart er de assosiative beholderne som lagrer sortert nøkkelverdi-par, der hver nøkkel er unik og den kan settes inn eller slettes, men kan ikke endres. Verdier knyttet til nøkler kan endres.
For eksempel: Et kart over ansatte der ansatt-ID er nøkkelen og navnet er verdien kan representeres som:
Nøkler | Verdier |
---|---|
101 | Nikita |
102 | Robin |
103 | Dyp |
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økkel: Nøkkeldatatypen som skal lagres i kartet.
type: Datatypen verdi som skal lagres i kartet.
sammenligne: En sammenligningsklasse som tar to argumenter av samme type bool og returnerer en verdi. Dette argumentet er valgfritt, og det binære predikatet mindre er standardverdien.
allokere: Type tildelerobjekt. Dette argumentet er valgfritt og standardverdien er allokator .
.tif-fil
Opprette et kart
Kart kan enkelt lages ved å bruke følgende setning:
typedef pair value_type;
Skjemaet ovenfor vil brukes til å lage et kart med nøkkeltype Nøkkeltype og typens verdi verditype. En viktig ting er at nøkkelen til et kart og tilsvarende verdier alltid settes inn som et par, du kan ikke sette inn bare nøkkel eller bare en verdi i et kart.
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; } }
Produksjon:
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
Medlemsfunksjoner
Nedenfor er listen over alle medlemsfunksjonene til kartet:
Byggmester/ødelegger
Funksjoner | Beskrivelse |
---|---|
konstruktører | Konstruer kart |
ødeleggere | Kartdestruktor |
operatør= | Kopier elementer av kartet til et annet kart. |
Iteratorer
Funksjoner | Beskrivelse |
---|---|
begynne | Returnerer en iterator som peker til det første elementet i kartet. |
cbegynn | Returnerer en konst iterator som peker til det første elementet i kartet. |
slutt | Returnerer en iterator som peker til fortiden. |
Noen | Returnerer en konstant iterator som peker til fortiden. |
begynne | Returnerer en omvendt iterator som peker mot slutten. |
gjør at | Returnerer en omvendt iterator som peker til begynnelsen. |
begynne | Returnerer en konstant omvendt iterator som peker mot slutten. |
tro | Returnerer en konstant omvendt iterator som peker til begynnelsen. |
Kapasitet
Funksjoner | Beskrivelse |
---|---|
tømme | Returnerer sant hvis kartet er tomt. |
størrelse | Returnerer antall elementer i kartet. |
maks_størrelse | Returnerer maksimal størrelse på kartet. |
Elementtilgang
Funksjoner | Beskrivelse |
---|---|
operatør[] | Hent elementet med gitt nøkkel. |
på | Hent elementet med gitt nøkkel. |
Modifikatorer
Funksjoner | Beskrivelse |
---|---|
sett inn | Sett inn element i kartet. |
viske ut | Slett elementer fra kartet. |
bytte | Bytt ut innholdet på kartet. |
klar | Slett alle elementene på kartet. |
plassering | Konstruer og sett inn de nye elementene i kartet. |
emplace_hint | Konstruer og sett inn nye elementer i kartet etter hint. |
Observatører
Funksjoner | Beskrivelse |
---|---|
key_comp | Returner en kopi av nøkkelsammenligningsobjektet. |
verdi_komp | Returner en kopi av verdisammenligningsobjektet. |
Drift
Funksjoner | Beskrivelse |
---|---|
finne | Søk etter et element med gitt nøkkel. |
telle | Får antall elementer som samsvarer med gitt nøkkel. |
nedre_grense | Returnerer en iterator til nedre grense. |
øvre grense | Returnerer en iterator til øvre grense. |
like_område | Returnerer utvalget av elementer som samsvarer med gitt nøkkel. |
Fordeler
Funksjoner | Beskrivelse |
---|---|
get_allocator | Returnerer et allokeringsobjekt som brukes til å konstruere kartet. |
Overbelastede funksjoner som ikke er medlemmer
Funksjoner | Beskrivelse |
---|---|
operatør== | Sjekker om de to kartene er like eller ikke. |
operatør!= | Sjekker om de to kartene er like eller ikke. |
operatør< | Sjekker om det første kartet er mindre enn det andre eller ikke. |
operatør<=< td> | Sjekker om det første kartet er mindre enn eller likt det andre eller ikke. | =<>
operatør> | Sjekker om det første kartet er større enn det andre eller ikke. |
operatør>= | Sjekker om det første kartet er større enn det andre eller ikke. |
bytte() | Bytter elementet av to kart. |