A térképek a C++ STL (Standard Template Library) részei. A térképek olyan asszociatív tárolók, amelyek rendezett kulcs-érték párokat tárolnak, amelyekben minden kulcs egyedi, és beilleszthető vagy törölhető, de nem módosítható. A kulcsokhoz tartozó értékek módosíthatók.
Például: Az alkalmazottak térképe, ahol az alkalmazotti azonosító a kulcs és a név az érték, a következőképpen ábrázolható:
Kulcsok | Értékek |
---|---|
101 | Nikita |
102 | Vörösbegy |
103 | Mély |
104 | János |
Szintaxis
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>
Paraméter
kulcs: A térképen tárolandó legfontosabb adattípus.
típus: A térképen tárolandó érték adattípusa.
összehasonlítani: Egy összehasonlító osztály, amely két azonos típusú bool argumentumot vesz fel, és egy értéket ad vissza. Ez az argumentum nem kötelező, és a kevesebb bináris predikátum az alapértelmezett érték.
alloc: Az allokátor objektum típusa. Ez az argumentum nem kötelező, és az alapértelmezett érték allocator .
avl fák
Térkép készítése
A térképek könnyen létrehozhatók a következő utasítással:
typedef pair value_type;
A fenti űrlap a kulcstípusú térkép létrehozásához használható Kulcs típusa és a típus értéke érték tipusa. Egy fontos dolog az, hogy a térkép kulcsa és a hozzá tartozó értékek mindig párban kerülnek beillesztésre, nem lehet csak kulcsot vagy csak értéket beszúrni a térképbe.
1. példa
#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; } }
Kimenet:
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
Tagi funkciók
Az alábbiakban a térkép összes tagfunkciójának listája található:
Építő/romboló
Funkciók | Leírás |
---|---|
kivitelezők | Építsen térképet |
rombolók | Térképromboló |
operátor= | Másolja át a térkép elemeit egy másik térképre. |
Iterátorok
Funkciók | Leírás |
---|---|
kezdődik | Egy iterátort ad vissza, amely a térkép első elemére mutat. |
cbegin | Egy const iterátort ad vissza, amely a térkép első elemére mutat. |
vége | Egy iterátort ad vissza, amely a múlt végére mutat. |
néhány | Egy állandó iterátort ad vissza, amely a múlt végére mutat. |
rbegin | A végére mutató fordított iterátort ad vissza. |
teszi | Egy fordított iterátort ad vissza, amely az elejére mutat. |
crbegin | Egy állandó fordított iterátort ad vissza, amely a végére mutat. |
hinni | Egy állandó fordított iterátort ad vissza, amely az elejére mutat. |
Kapacitás
Funkciók | Leírás |
---|---|
üres | Igaz értéket ad vissza, ha a térkép üres. |
méret | A térkép elemeinek számát adja vissza. |
max_size | A térkép maximális méretét adja vissza. |
Elem hozzáférés
Funkciók | Leírás |
---|---|
operátor[] | Az elem lekérése a megadott kulccsal. |
nál nél | Az elem lekérése a megadott kulccsal. |
Módosítók
Funkciók | Leírás |
---|---|
betét | Elem beszúrása a térképbe. |
törli | Elemek törlése a térképről. |
csere | Cserélje ki a térkép tartalmát. |
egyértelmű | Törölje a térkép összes elemét. |
elhelyezkedés | Szerkessze meg és helyezze be az új elemeket a térképbe. |
emplace_hint | Építsen meg és illesszen be új elemeket a térképbe tippekkel. |
Megfigyelők
Funkciók | Leírás |
---|---|
key_comp | A kulcs-összehasonlító objektum másolatának visszaküldése. |
value_comp | Az érték-összehasonlítási objektum másolatának visszaküldése. |
Tevékenységek
Funkciók | Leírás |
---|---|
megtalálja | Keressen egy elemet adott kulccsal. |
számol | Lekéri az adott kulcsnak megfelelő elemek számát. |
alsó határ | Egy iterátort ad vissza alsó korlátra. |
felső határ | Egy iterátort ad vissza a felső korlátra. |
egyenlő_tartomány | Az adott kulcshoz tartozó elemek tartományát adja vissza. |
Allokátor
Funkciók | Leírás |
---|---|
get_allocator | Egy lefoglaló objektumot ad vissza, amelyet a térkép felépítéséhez használnak. |
Nem tag túlterhelt funkciók
Funkciók | Leírás |
---|---|
operátor== | Ellenőrzi, hogy a két térkép egyenlő-e vagy sem. |
operátor!= | Ellenőrzi, hogy a két térkép egyenlő-e vagy sem. |
operátor< | Ellenőrzi, hogy az első térkép kisebb-e, mint a többi. |
operátor<=< td> | Ellenőrzi, hogy az első térkép kisebb-e vagy egyenlő-e a többivel vagy sem. | =<>
operátor> | Ellenőrzi, hogy az első térkép nagyobb-e a többinél vagy sem. |
operátor>= | Ellenőrzi, hogy az első térkép nagyobb-e, mint a többi, vagy sem. |
csere() | Felcseréli két térkép elemét. |