Žemėlapiai yra asociatyvūs konteineriai kurie saugo elementus pagal žemėlapio sudarymą. Kiekvienas elementas turi rakto reikšmę ir susietą vertę. Jokios dvi susietos reikšmės negali turėti tų pačių pagrindinių verčių.
std::map yra žemėlapių konteinerių klasės šablonas ir jis yra apibrėžtas antraštės faile.
Pagrindinės std::map narių funkcijos
Kai kurios pagrindinės funkcijos, susijusios su std::map:
- pradėti () – Grąžina iteratorių į pirmąjį elementą žemėlapyje.
- galas() – Grąžina iteratorių į teorinį elementą, kuris eina po paskutinio elemento žemėlapyje.
- dydis () – Grąžina elementų skaičių žemėlapyje.
- maksimalus_dydis() – Grąžina maksimalų elementų skaičių, kurį gali turėti žemėlapyje.
- tuščia() – Grąžina, ar žemėlapis tuščias.
- poros įterpimas (rakto reikšmė, žemėlapio reikšmė) – Prideda naują elementą į žemėlapį.
- ištrinti (iteratoriaus padėtis) – Pašalina elementą iteratoriaus nurodytoje vietoje.
- ištrinti (konst g) – Pašalina rakto reikšmę „g“ iš žemėlapio.
- aišku () – Pašalina visus elementus iš žemėlapio.
std::map pavyzdžiai
Toliau pateikti pavyzdžiai rodo, kaip atlikti pagrindines operacijas su žemėlapio konteineriais.
1 pavyzdys: pradžia() ir pabaiga() funkcija
C++
// C++ program to illustrate the begin and end iterator> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>mp; // Įterpti kai kurias reikšmes į žemėlapį mp['one'] = 1; mp['du'] = 2; mp['trys'] = 3; // Gaukite iteratorių, nukreipiantį į pirmąjį elementą // map mapint>::iterator it = mp.begin(); // Pakartokite žemėlapį ir atspausdinkite elementus while (it != mp.end()) { cout<< 'Key: ' << ', Value: ' ++it; } return 0; }> |
>
>
sąrašų rūšiavimas javaIšvestis
Key: one, Value: 1 Key: three, Value: 3 Key: two, Value: 2>
Pirmiau nurodyto metodo sudėtingumas:
Laiko sudėtingumas: O(n) kur n yra žemėlapio dydis.
Pagalbinė erdvė: O(n)
2 pavyzdys: dydis() funkcija
C++
// C++ program to illustrate the size() function> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>žemėlapis; // Įterpti kai kurias reikšmes į žemėlapio žemėlapį['one'] = 1; žemėlapis ['du'] = 2; žemėlapis ['trys'] = 3; // Spausdinkite žemėlapio dydžio dydį<< 'Size of map: ' << map.size() << endl; return 0; }> |
>
Bourne-gain apvalkalas
>Išvestis
Size of map: 3>
Pirmiau nurodyto metodo sudėtingumas:
Laiko sudėtingumas: O(1).
3 pavyzdys: Žemėlapio įgyvendinimas
CPP
// CPP Program to demonstrate the implementation in Map> // divyansh mishra -->divyanshmishra101010> #include> #include> #include> using> namespace> std;> int> main()> {> >// empty map container> >map<>int>,>int>>gquiz1;> >// insert elements in random order> >gquiz1.insert(pair<>int>,>int>>(1, 40));> >gquiz1.insert(pair<>int>,>int>>(2, 30));> >gquiz1.insert(pair<>int>,>int>>(3, 60));> >gquiz1.insert(pair<>int>,>int>>(4, 20));> >gquiz1.insert(pair<>int>,>int>>(5, 50));> >gquiz1.insert(pair<>int>,>int>>(6, 50));> >// another way of inserting a value in a map> >gquiz1[7] = 10;> >// printing map gquiz1> >map<>int>,>int>>::iteratorius itr;> >cout <<>'
The map gquiz1 is :
'>;> >cout <<>' KEY ELEMENT
'>;> >for> (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr) {> >cout <<>' '> ' ' << '
'; } cout << endl; // assigning the elements from gquiz1 to gquiz2 map |
>
>Išvestis
The map gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 The map gquiz2 after assign from gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 gquiz2 after remov...>
Pirmiau nurodyto metodo sudėtingumas:
Laiko sudėtingumas: O(n log(n)), nes n yra žemėlapio dydis
Pagalbinė erdvė: O(n)
4 pavyzdys: sveikųjų skaičių žemėlapio įgyvendinimas
C++
// C++ program to implement map container> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>žemėlapis; // Įterpti kai kurias reikšmes į žemėlapio žemėlapį['one'] = 1; žemėlapis ['du'] = 2; žemėlapis ['trys'] = 3; // Spausdinkite reikšmes žemėlapyje cout<< 'Key: one, Value: ' << map['one'] << endl; cout << 'Key: two, Value: ' << map['two'] << endl; cout << 'Key: three, Value: ' << map['three'] << endl; // Check if a key is in the map if (map.count('four')>0) { cout<< 'Key 'four' is in the map' << endl; } else { cout << 'Key 'four' is not in the map' << endl; } return 0; }> |
>
>Išvestis
Key: one, Value: 1 Key: two, Value: 2 Key: three, Value: 3 Key 'four' is not in the map>
Visų std::map funkcijų sąrašas
Šioje lentelėje yra visos funkcijos, apibrėžtos klasėje std::map.
| Funkcija | Apibrėžimas |
|---|---|
| žemėlapis::insert() | Įterpti elementus su tam tikru raktu į žemėlapio konteinerį –> O(log n) |
| žemėlapis:: count() | Grąžina elemento, kurio pagrindinė reikšmė yra „g“, atitikčių skaičių žemėlapyje. –> O(log n) |
| žemėlapis equal_range() | Pateikia porų iteratorių. Pora nurodo diapazono, apimančio visus konteinerio elementus, kurių raktas atitinka k, ribas. |
| žemėlapio trynimas () | Naudojamas elementams ištrinti iš konteinerio –> O(log n) |
| žemėlapis rend() | Grąžina atvirkštinį iteratorių, nukreipiantį į teorinį elementą prieš pat pirmąją rakto-reikšmių porą žemėlapyje (kuri laikoma atvirkštine pabaiga). Parsisiųsti autocad 2019 anglišką mediafire |
| žemėlapis rbegin()
| Grąžina atvirkštinį iteratorių, kuris nurodo paskutinį žemėlapio elementą. |
| rasti žemėlapyje () | Grąžina iteratorių į elementą su rakto reikšme „g“ žemėlapyje, jei jis rastas, kitu atveju grąžina iteratorių į pabaigą. |
| žemėlapis crbegin() ir crend() | crbegin() grąžina nuolatinį atvirkštinį iteratorių, nurodydamas paskutinį elementą žemėlapio konteineryje. crend() grąžina pastovų atvirkštinį iteratorių, nukreipiantį į teorinį elementą prieš pirmąjį elementą žemėlapyje. |
| žemėlapis cbegin() ir cend() | cbegin() grąžina pastovų iteratorių, nurodantį pirmąjį žemėlapio konteinerio elementą. cend() grąžina pastovų iteratorių, nukreipiantį į teorinį elementą, einantį po paskutinio elemento daugialypės terpės schemoje. |
| žemėlapis emplace () | Į žemėlapio konteinerį įterpia raktą ir jo elementą. |
| žemėlapis max_size() | Grąžina maksimalų elementų skaičių, kurį gali talpinti žemėlapio konteineris –> O(1) |
| žemėlapio viršutinė_riba() | Grąžina iteratorių į pirmąjį elementą, kuris yra lygiavertis susietai vertei su rakto reikšme „g“ arba tikrai eis po elemento su rakto reikšme „g“ žemėlapyje pilna priedų tiesos lentelė |
| žemėlapio operatorius= | Priskiria konteinerio turinį kitam konteineriui, pakeičiant dabartinį turinį. |
| žemėlapio apatinė riba () | Grąžina iteratorių į pirmąjį elementą, kuris yra lygiavertis susietai vertei su rakto reikšme „g“ arba tikrai nebus prieš elementą su rakto reikšme „g“ žemėlapyje –> O(log n) |
| žemėlapis emplace_hint() | Į žemėlapio konteinerį įterpia raktą ir jo elementą su duota užuomina. |
| žemėlapio vertės_komp.() | Grąžina objektą, kuris nustato elementų išdėstymą žemėlapyje (pagal numatytuosius nustatymus „<“). |
| žemėlapio raktas_comp() | Grąžina objektą, kuris nustato elementų išdėstymą žemėlapyje (pagal numatytuosius nustatymus „<“). |
| žemėlapis::dydis() | Grąžina elementų skaičių žemėlapyje. |
| žemėlapis::tuščias() | Grąžina, ar žemėlapis tuščias |
| žemėlapis::begin() and end() | begin() grąžina iteratorių į pirmąjį elementą žemėlapyje. end() grąžina iteratorių teoriniam elementui, kuris seka po paskutinio elemento žemėlapyje |
| žemėlapis::operatorius[] | Šis operatorius naudojamas nurodyti elementą, esantį operatoriaus viduje nurodytoje vietoje. |
| žemėlapis::clear() | Pašalina visus elementus iš žemėlapio. |
| žemėlapis::at() ir žemėlapis::swap() | Funkcija at() naudojama norint grąžinti nuorodą į elementą, susietą su raktu k. Funkcija swap() naudojama keistis dviejų žemėlapių turiniu, tačiau žemėlapiai turi būti to paties tipo, nors dydžiai gali skirtis. |