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ć. |