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<pair"> // map::allocator_type > 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] = '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; } }
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. |