Mapy są kontenery skojarzone które przechowują elementy w zmapowany sposób. Każdy element ma wartość klucza i wartość mapowaną. Żadne dwie zmapowane wartości nie mogą mieć tych samych wartości kluczy.
std::map jest szablonem klasy dla kontenerów map i jest zdefiniowany w pliku nagłówkowym.
Podstawowe funkcje członkowskie std::map
Niektóre podstawowe funkcje związane z std::map to:
- zaczynać() – Zwraca iterator do pierwszego elementu na mapie.
- koniec() – Zwraca iterator do elementu teoretycznego, który następuje po ostatnim elemencie na mapie.
- rozmiar() – Zwraca liczbę elementów na mapie.
- największy rozmiar() – Zwraca maksymalną liczbę elementów, jakie może pomieścić mapa.
- pusty() – Zwraca informację, czy mapa jest pusta.
- wstaw parę (wartość klucza, wartość mapy) – Dodaje nowy element do mapy.
- usuń(pozycja iteratora) – Usuwa element z pozycji wskazanej przez iterator.
- usuń (stała g) – Usuwa parę klucz-wartość „g” z mapy.
- jasne() – Usuwa wszystkie elementy z mapy.
Przykłady std::map
Poniższe przykłady pokazują, jak wykonywać podstawowe operacje na kontenerach map.
Przykład 1: funkcja Begin() i end().
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>poseł; // Wstaw wartości do mapy mp['one'] = 1; mp['dwa'] = 2; mp['trzy'] = 3; // Uzyskaj iterator wskazujący pierwszy element w // mapie mapint>::iterator it = mp.begin(); // Iteruj po mapie i wypisz elementy while (it != mp.end()) { cout<< 'Key: ' << ', Value: ' ++it; } return 0; }> |
>
>Wyjście
Key: one, Value: 1 Key: three, Value: 3 Key: two, Value: 2>
Złożoność powyższej metody:
Złożoność czasowa: O(n) gdzie n jest rozmiarem mapy.
Przestrzeń pomocnicza: NA)
Przykład 2: funkcja rozmiaru().
C++
math.pow Java
// C++ program to illustrate the size() function> #include> #include> #include> using> namespace> std;> int> main()> {> > // Create a map of strings to integers> > mapint>mapa; // Wstaw wartości do mapy map['one'] = 1; map['dwa'] = 2; map['trzy'] = 3; // Wydrukuj rozmiar mapy<< 'Size of map: ' << map.size() << endl; return 0; }> |
>
>Wyjście
Size of map: 3>
Złożoność powyższej metody:
Złożoność czasowa: O(1).
Przykład 3: Implementacja mapy
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> >::iterator 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 |
>
>Wyjście
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...>
Złożoność powyższej metody:
Złożoność czasowa: O(n log(n)), ponieważ n jest rozmiarem mapy
Przestrzeń pomocnicza: NA)
Przykład 4: Implementacja mapy liczb całkowitych
C++
// C++ program to implement map container> #include> #include> #include> using> namespace> std;> int> main()> {> > // Create a map of strings to integers> > mapint>mapa; // Wstaw wartości do mapy map['one'] = 1; map['dwa'] = 2; map['trzy'] = 3; // Wydrukuj wartości z mapy 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) {przym<< 'Key 'four' is in the map' << endl; } else { cout << 'Key 'four' is not in the map' << endl; } return 0; }> |
>
>Wyjście
Key: one, Value: 1 Key: two, Value: 2 Key: three, Value: 3 Key 'four' is not in the map>
Lista wszystkich funkcji std::map
Poniższa tabela zawiera wszystkie funkcje zdefiniowane w klasie std::map.
Funkcjonować | Definicja |
---|---|
mapa::wstaw() | Wstaw elementy z określonym kluczem do kontenera mapy –> O(log n) |
mapa:: liczba() | Zwraca liczbę dopasowań do elementu z parą klucz-wartość „g” na mapie. –> O(log n) |
mapa równa_zakres() | Zwraca iterator par. Para odnosi się do granic zakresu obejmującego wszystkie elementy w kontenerze, których klucz jest odpowiednikiem k. |
wymazanie mapy() | Służy do usuwania elementów z kontenera –> O(log n) |
renderowanie mapy() | Zwraca iterator odwrotny wskazujący element teoretyczny tuż przed pierwszą parą klucz-wartość na mapie (która jest uważana za jej odwrotny koniec). |
mapa rbegin()
| Zwraca iterator odwrotny, który wskazuje na ostatni element mapy. |
znalezienie mapy() | Zwraca iterator do elementu z parą klucz-wartość „g” na mapie, jeśli zostanie znaleziony, w przeciwnym razie zwraca iterator do końca. |
mapa crbegin() i crend() | crbegin() zwraca stały iterator odwrotny odnoszący się do ostatniego elementu w kontenerze mapy. crend() zwraca stały iterator odwrotny wskazujący element teoretyczny przed pierwszym elementem na mapie. |
mapuj cbegin() i cend() | cbegin() zwraca stały iterator odnoszący się do pierwszego elementu w kontenerze mapy. cend() zwraca stały iterator wskazujący element teoretyczny, który następuje po ostatnim elemencie multimapy. |
miejsce na mapie() | Wstawia klucz i jego element do kontenera mapy. |
mapa max_size() | Zwraca maksymalną liczbę elementów, jakie może pomieścić kontener mapy –> O(1) |
mapa górna granica() | Zwraca iterator do pierwszego elementu, który jest odpowiednikiem odwzorowanej wartości z parą klucz-wartość „g” lub zdecydowanie przejdzie po elemencie z parą klucz-wartość „g” na mapie |
operator mapy= | Przypisuje zawartość kontenera do innego kontenera, zastępując jego bieżącą zawartość. |
mapa dolna granica() | Zwraca iterator do pierwszego elementu, który jest równoważny zmapowanej wartości z parą klucz-wartość „g” lub zdecydowanie nie przejdzie przed elementem z parą klucz-wartość „g” na mapie –> O(log n) |
mapa emplace_hint() | Wstawia klucz i jego element do kontenera mapy z podaną podpowiedzią. |
mapuj wartość_komp() | Zwraca obiekt określający kolejność elementów na mapie (domyślnie „<”). |
mapuj klucz_comp() | Zwraca obiekt określający kolejność elementów na mapie (domyślnie „<”). |
rozmiar mapy() | Zwraca liczbę elementów na mapie. |
mapa::pusta() | Zwraca informację, czy mapa jest pusta |
mapa::begin() i end() | Begin() zwraca iterator do pierwszego elementu na mapie. end() zwraca iterator do elementu teoretycznego, który następuje po ostatnim elemencie na mapie |
mapa::operator[] | Operator ten służy do odwoływania się do elementu znajdującego się na pozycji podanej wewnątrz operatora. |
mapa::wyczyść() | Usuwa wszystkie elementy z mapy. |
map::at() i map::swap() | Funkcja at() służy do zwrócenia referencji do elementu powiązanego z kluczem k. Funkcja swap() służy do wymiany zawartości dwóch map, ale mapy muszą być tego samego typu, chociaż rozmiary mogą się różnić. |