logo

C++ térkép funkció

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

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.