logo

C++ kaartfunctie

Kaarten maken deel uit van de C++ STL (Standard Template Library). Kaarten zijn de associatieve containers waarin een gesorteerd sleutel-waardepaar wordt opgeslagen, waarbij elke sleutel uniek is en kan worden ingevoegd of verwijderd, maar niet kan worden gewijzigd. Waarden die aan sleutels zijn gekoppeld, kunnen worden gewijzigd.

Bijvoorbeeld: Een kaart met werknemers waarbij de werknemers-ID de sleutel is en naam de waarde, kan als volgt worden weergegeven:

Sleutels Waarden
101 Nikita
102 Robin
103 Diep
104 John

Syntaxis

 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

sleutel: Het belangrijkste gegevenstype dat op de kaart moet worden opgeslagen.

type: Het gegevenstype van de waarde die op de kaart moet worden opgeslagen.

vergelijken: Een vergelijkingsklasse die twee argumenten van hetzelfde type bool gebruikt en een waarde retourneert. Dit argument is optioneel en het binaire predikaat less is de standaardwaarde.

toewijzen: Type van het allocatorobject. Dit argument is optioneel en de standaardwaarde is allocator .

bomen spreiden

Een kaart maken

Kaarten kunnen eenvoudig worden gemaakt met behulp van de volgende verklaring:

 typedef pair value_type; 

Het bovenstaande formulier wordt gebruikt om een ​​kaart met een sleuteltype te maken Sleutel type en waarde van het type waarde type. Een belangrijk ding is dat de sleutel van een kaart en de bijbehorende waarden altijd als een paar worden ingevoegd. Je kunt niet alleen de sleutel of alleen een waarde in een kaart invoegen.

voorbeeld 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; } } 

Uitgang:

 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 

Functies van leden

Hieronder vindt u de lijst met alle lidfuncties van de kaart:

Bouwer/vernietiger

Functies Beschrijving
constructeurs Construeer kaart
vernietigers Kaartvernietiger
exploitant= Kopieer elementen van de kaart naar een andere kaart.

Iteratoren

Functies Beschrijving
beginnen Retourneert een iterator die naar het eerste element op de kaart verwijst.
cbegin Retourneert een const-iterator die naar het eerste element op de kaart verwijst.
einde Retourneert een iterator die naar het verleden-einde verwijst.
een paar Retourneert een constante iterator die naar het verleden-einde verwijst.
rbegin Retourneert een omgekeerde iterator die naar het einde wijst.
maakt Retourneert een omgekeerde iterator die naar het begin wijst.
begin Retourneert een constante omgekeerde iterator die naar het einde wijst.
geloven Retourneert een constante omgekeerde iterator die naar het begin wijst.

Capaciteit

Functies Beschrijving
leeg Retourneert waar als de kaart leeg is.
maat Retourneert het aantal elementen op de kaart.
max_grootte Retourneert de maximale grootte van de kaart.

Elementtoegang

Functies Beschrijving
exploitant[] Haal het element op met de opgegeven sleutel.
bij Haal het element op met de opgegeven sleutel.

Modificatoren

Functies Beschrijving
invoegen Element in de kaart invoegen.
wissen Wis elementen van de kaart.
ruil Wissel de inhoud van de kaart uit.
duidelijk Verwijder alle elementen van de kaart.
plaats Construeer en plaats de nieuwe elementen in de kaart.
emplace_hint Construeer en voeg nieuwe elementen in de kaart door middel van een hint.

Waarnemers

Functies Beschrijving
sleutel_comp Retourneer een kopie van het sleutelvergelijkingsobject.
waarde_comp Retourneert een kopie van het waardevergelijkingsobject.

Activiteiten

Functies Beschrijving
vinden Zoek naar een element met de opgegeven sleutel.
graaf Haalt het aantal elementen op dat overeenkomt met de opgegeven sleutel.
ondergrens Retourneert een iterator naar de ondergrens.
bovengrens Retourneert een iterator naar de bovengrens.
gelijk_bereik Retourneert het bereik van elementen die overeenkomen met de opgegeven sleutel.

Toewijzer

Functies Beschrijving
get_allocator Retourneert een allocatorobject dat wordt gebruikt om de kaart samen te stellen.

Overbelaste functies van niet-leden

Functies Beschrijving
exploitant== Controleert of de twee kaarten gelijk zijn of niet.
exploitant!= Controleert of de twee kaarten gelijk zijn of niet.
exploitant< Controleert of de eerste kaart kleiner is dan de andere of niet.
exploitant<=< td> Controleert of de eerste kaart kleiner is dan of gelijk is aan de andere of niet.
exploitant> Controleert of de eerste kaart groter is dan de andere of niet.
exploitant>= Controleert of de eerste kaart groter dan gelijk is aan andere of niet.
ruil() Wisselt het element van twee kaarten uit.