logo

C++ žemėlapio funkcija

Žemėlapiai yra C++ STL (standartinės šablonų bibliotekos) dalis. Žemėlapiai yra asociatyvūs konteineriai, kuriuose saugoma surūšiuota rakto-reikšmių pora, kurioje kiekvienas raktas yra unikalus ir gali būti įterptas arba ištrintas, bet negali būti pakeistas. Su raktais susietos reikšmės gali būti keičiamos.

Pavyzdžiui: Darbuotojų žemėlapis, kuriame darbuotojo ID yra raktas, o vardas yra reikšmė, gali būti pateiktas kaip:

c
Raktai Vertybės
101 Nikita
102 Robinas
103 Giliai
104 Jonas

Sintaksė

 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>

Parametras

Raktas: Pagrindinis duomenų tipas, kuris turi būti saugomas žemėlapyje.

tipas: Vertės duomenų tipas, kuris turi būti saugomas žemėlapyje.

palyginti: Palyginimo klasė, kuri paima du to paties tipo bool argumentus ir grąžina reikšmę. Šis argumentas yra neprivalomas, o dvejetainis predikatas less yra numatytoji reikšmė.

paskirstyti: Skirstytuvo objekto tipas. Šis argumentas yra neprivalomas, o numatytoji reikšmė yra skirstytuvas .

Žemėlapio kūrimas

Žemėlapius galima lengvai sukurti naudojant šį teiginį:

 typedef pair value_type; 

Aukščiau pateikta forma bus naudojama žemėlapiui su tipo raktu sukurti Rakto tipas ir tipo vertę vertės tipas. Svarbu tai, kad žemėlapio raktas ir atitinkamos reikšmės visada įterpiamos kaip pora, į žemėlapį negalima įterpti tik rakto ar tik reikšmės.

1 pavyzdys

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

Išvestis:

 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 

Narių funkcijos

Žemiau pateikiamas visų žemėlapio narių funkcijų sąrašas:

išsaugoti youtube video vlc

Statytojas/griovėjas

Funkcijos apibūdinimas
konstruktoriai Sukurti žemėlapį
naikintojai Žemėlapio naikintojas
operatorius = Nukopijuokite žemėlapio elementus į kitą žemėlapį.

Iteratoriai

Funkcijos apibūdinimas
pradėti Grąžina iteratorių, nukreipiantį į pirmąjį elementą žemėlapyje.
cbegin Grąžina const iteratorių, nukreipiantį į pirmąjį elementą žemėlapyje.
galas Grąžina iteratorių, nurodantį į praeitį.
keletas Grąžina pastovų iteratorių, nurodantį į praeitį.
rbegin Grąžina atvirkštinį iteratorių, nukreipiantį į pabaigą.
gamina Grąžina atvirkštinį iteratorių, nurodantį į pradžią.
crbegin Grąžina nuolatinį atvirkštinį iteratorių, nurodantį į pabaigą.
tikėti Grąžina nuolatinį atvirkštinį iteratorių, nurodantį į pradžią.

Talpa

Funkcijos apibūdinimas
tuščia Grąžina tiesa, jei žemėlapis tuščias.
dydis Grąžina elementų skaičių žemėlapyje.
maksimalus_dydis Grąžina maksimalų žemėlapio dydį.

Elemento prieiga

Funkcijos apibūdinimas
operatorius[] Gauti elementą duotu raktu.
adresu Gauti elementą duotu raktu.

Modifikatoriai

Funkcijos apibūdinimas
Įdėti Įterpti elementą į žemėlapį.
ištrinti Ištrinkite elementus iš žemėlapio.
apsikeisti Keiskitės žemėlapio turiniu.
aišku Ištrinkite visus žemėlapio elementus.
vieta Sukurkite ir įterpkite naujus elementus į žemėlapį.
emplace_hint Sukurkite ir įterpkite naujų elementų į žemėlapį pagal užuominą.

Stebėtojai

Funkcijos apibūdinimas
key_comp Grąžinkite raktų palyginimo objekto kopiją.
vertės_komp Grąžinkite verčių palyginimo objekto kopiją.

Operacijos

Funkcijos apibūdinimas
rasti Ieškokite elemento naudodami nurodytą raktą.
skaičiuoti Gauna elementų, atitinkančių nurodytą raktą, skaičių.
apatinė riba Grąžina iteratorių į apatinę ribą.
viršutinė_riba Grąžina iteratorių į viršutinę ribą.
lygus_diapazonas Grąžina elementų diapazoną, atitinkantį nurodytą raktą.

Alokatorius

Funkcijos apibūdinimas
get_allocator Grąžina skirstytuvo objektą, kuris naudojamas žemėlapiui sudaryti.

Ne narių perkrautos funkcijos

Funkcijos apibūdinimas
operatorius== Patikrina, ar abu žemėlapiai yra vienodi, ar ne.
operatorius!= Patikrina, ar abu žemėlapiai yra vienodi, ar ne.
operatorius< Patikrina, ar pirmasis žemėlapis yra mažesnis nei kitas, ar ne.
operatorius<=< td> Patikrina, ar pirmasis žemėlapis yra mažesnis arba lygus kitam, ar ne.
operatorius> Patikrina, ar pirmasis žemėlapis yra didesnis už kitą, ar ne.
operatorius>= Patikrina, ar pirmasis žemėlapis yra didesnis nei lygus kitam, ar ne.
apsikeisti () Keičiasi dviejų žemėlapių elementu.