Kartor är en del av C++ STL (Standard Template Library). Kartor är de associativa behållare som lagrar sorterade nyckel-värdepar, där varje nyckel är unik och den kan infogas eller raderas men inte kan ändras. Värden förknippade med nycklar kan ändras.
Till exempel: En karta över anställda där anställds ID är nyckeln och namnet är värdet kan representeras som:
Nycklar | Värderingar |
---|---|
101 | Nikita |
102 | Robin |
103 | Djup |
104 | John |
Syntax
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
nyckel: Nyckeldatatypen som ska lagras i kartan.
typ: Datatypen av värde som ska lagras i kartan.
jämföra: En jämförelseklass som tar två argument av samma typ bool och returnerar ett värde. Detta argument är valfritt och det binära predikatet mindre är standardvärdet.
allokera: Typ av allokeringsobjekt. Detta argument är valfritt och standardvärdet är allokator.
hur många uns är 10 milliliter
Skapa en karta
Kartor kan enkelt skapas med följande uttalande:
typedef pair value_type;
Ovanstående formulär kommer att användas för att skapa en karta med nyckeltyp Nyckeltyp och typens värde värde typ. En viktig sak är att nyckeln till en karta och motsvarande värden alltid infogas som ett par, du kan inte infoga endast nyckel eller bara ett värde i en karta.
Exempel 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
Nedan är listan över alla medlemsfunktioner i kartan:
Byggare/förstörare
Funktioner | Beskrivning |
---|---|
konstruktörer | Konstruera karta |
jagare | Kartförstörare |
operator= | Kopiera delar av kartan till en annan karta. |
Iteratorer
Funktioner | Beskrivning |
---|---|
Börja | Returnerar en iterator som pekar på det första elementet i kartan. |
cbörja | Returnerar en konst iterator som pekar på det första elementet i kartan. |
slutet | Returnerar en iterator som pekar på det förflutna. |
några | Returnerar en konstant iterator som pekar på det förflutna. |
börja | Returnerar en omvänd iterator som pekar mot slutet. |
gör | Returnerar en omvänd iterator som pekar mot början. |
börja | Returnerar en konstant omvänd iterator som pekar mot slutet. |
tro | Returnerar en konstant omvänd iterator som pekar mot början. |
Kapacitet
Funktioner | Beskrivning |
---|---|
tömma | Returnerar sant om kartan är tom. |
storlek | Returnerar antalet element i kartan. |
max_size | Returnerar den maximala storleken på kartan. |
Elementåtkomst
Funktioner | Beskrivning |
---|---|
operatör[] | Hämta elementet med given nyckel. |
på | Hämta elementet med given nyckel. |
Modifierare
Funktioner | Beskrivning |
---|---|
Föra in | Infoga element i kartan. |
radera | Radera element från kartan. |
byta | Byt innehåll på kartan. |
klar | Ta bort alla delar av kartan. |
plats | Konstruera och infoga de nya elementen i kartan. |
emplace_hint | Konstruera och infoga nya element i kartan genom ledtråd. |
Observatörer
Funktioner | Beskrivning |
---|---|
key_comp | Returnera en kopia av nyckeljämförelseobjekt. |
värde_komp | Returnera en kopia av värdejämförelseobjektet. |
Operationer
Funktioner | Beskrivning |
---|---|
hitta | Sök efter ett element med given nyckel. |
räkna | Får antalet element som matchar med given nyckel. |
nedre_gräns | Returnerar en iterator till nedre gräns. |
övre gräns | Returnerar en iterator till övre gräns. |
lika_intervall | Returnerar intervallet av element som matchar med given nyckel. |
Tilldelare
Funktioner | Beskrivning |
---|---|
get_allocator | Returnerar ett allokeringsobjekt som används för att konstruera kartan. |
Överbelastade funktioner för icke-medlemmar
Funktioner | Beskrivning |
---|---|
operatör== | Kontrollerar om de två kartorna är lika eller inte. |
operatör!= | Kontrollerar om de två kartorna är lika eller inte. |
operatör< | Kontrollerar om den första kartan är mindre än den andra eller inte. |
operatör<=< td> | Kontrollerar om den första kartan är mindre än eller lika med den andra eller inte. | =<>
operatör> | Kontrollerar om den första kartan är större än den andra eller inte. |
operatör>= | Kontrollerar om den första kartan är större än lika med den andra eller inte. |
byta() | Byter ut elementet i två kartor. |