logo

Žemėlapis C++ standartinėje šablonų bibliotekoje (STL)

Ž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 java
Iš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 gquiz2(gquiz1.begin(), gquiz1.end()); // atspausdinti visus žemėlapio elementus gquiz2 cout<< ' The map gquiz2 after' << ' assign from gquiz1 is : '; cout << ' KEY ELEMENT '; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } cout << endl; // remove all elements up to // element with key=3 in gquiz2 cout << ' gquiz2 after removal of' ' elements less than key=3 : '; cout << ' KEY ELEMENT '; gquiz2.erase(gquiz2.begin(), gquiz2.find(3)); for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } // remove all elements with key = 4 int num; num = gquiz2.erase(4); cout << ' gquiz2.erase(4) : '; cout << num << ' removed '; cout << ' KEY ELEMENT '; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } cout << endl; // lower bound and upper bound for map gquiz1 key = 5 cout << 'gquiz1.lower_bound(5) : ' << ' KEY = '; cout ' '; cout << ' ELEMENT = ' << endl; cout << 'gquiz1.upper_bound(5) : ' << ' KEY = '; cout ' '; cout << ' ELEMENT = ' << endl; return 0; }>

>

>

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.