logo

C++ kartfunktion

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&lt;pair"> // map::allocator_type &gt; 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] = &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

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.
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.