logo

Funkcja mapy w C++

Mapy są częścią C++ STL (Standard Template Library). Mapy to skojarzone kontenery przechowujące posortowaną parę klucz-wartość, w której każdy klucz jest unikalny i można go wstawiać lub usuwać, ale nie można go zmieniać. Wartości powiązane z kluczami można zmieniać.

Na przykład: Mapę pracowników, gdzie identyfikator pracownika jest kluczem, a nazwa jest wartością, można przedstawić jako:

Klucze Wartości
101 Nikita
102 Rudzik
103 Głęboko
104 Jan

Składnia

 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>

Parametr

klucz: Kluczowy typ danych, który ma być przechowywany na mapie.

typ: Typ danych wartości, która ma być przechowywana na mapie.

porównywać: Klasa porównawcza, która przyjmuje dwa argumenty tego samego typu bool i zwraca wartość. Ten argument jest opcjonalny, a predykat binarny less jest wartością domyślną.

przydział: Typ obiektu alokatora. Argument ten jest opcjonalny, a wartością domyślną jest alokator.

Tworzenie mapy

Mapy można łatwo utworzyć za pomocą następującej instrukcji:

 typedef pair value_type; 

Powyższy formularz posłuży do utworzenia mapy z kluczem typu Typ klucza i wartość typu typ wartości. Ważną rzeczą jest to, że klucz mapy i odpowiadające mu wartości są zawsze wstawiane jako para, nie można wstawić samego klucza lub samej wartości na mapie.

Przykład 1

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

Wyjście:

 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 

Funkcje członkowskie

Poniżej znajduje się lista wszystkich funkcji składowych mapy:

Budowniczy/Niszczyciel

Funkcje Opis
konstruktorzy Konstruuj mapę
niszczyciele Destruktor mapy
operator= Skopiuj elementy mapy na inną mapę.

Iteratory

Funkcje Opis
zaczynać Zwraca iterator wskazujący pierwszy element na mapie.
czacznij Zwraca iterator const wskazujący pierwszy element na mapie.
koniec Zwraca iterator wskazujący na koniec przeszły.
kilka Zwraca stały iterator wskazujący na koniec.
zacznij Zwraca iterator odwrotny wskazujący na koniec.
sprawia Zwraca iterator odwrotny wskazujący na początek.
zacznij Zwraca stały iterator odwrotny wskazujący na koniec.
uważać Zwraca stały iterator odwrotny wskazujący na początek.

Pojemność

Funkcje Opis
pusty Zwraca wartość true, jeśli mapa jest pusta.
rozmiar Zwraca liczbę elementów na mapie.
największy rozmiar Zwraca maksymalny rozmiar mapy.

Dostęp do elementu

Funkcje Opis
operator[] Pobierz element o podanym kluczu.
Na Pobierz element o podanym kluczu.

Modyfikatory

Funkcje Opis
wstawić Wstaw element na mapę.
usuwać Usuń elementy z mapy.
zamieniać Wymień zawartość mapy.
jasne Usuń wszystkie elementy mapy.
Lokalizacja Zbuduj i wstaw nowe elementy do mapy.
miejsce_wskazówka Konstruuj i wstawiaj nowe elementy na mapę za pomocą podpowiedzi.

Obserwatorzy

Funkcje Opis
klucz_komp Zwróć kopię kluczowego obiektu porównania.
wartość_komp Zwróć kopię obiektu porównania wartości.

Operacje

Funkcje Opis
znajdować Wyszukaj element o podanym kluczu.
liczyć Pobiera liczbę elementów pasujących do podanego klucza.
Dolna granica Zwraca iterator do dolnej granicy.
Górna granica Zwraca iterator do górnej granicy.
równy_zakres Zwraca zakres elementów pasujących do podanego klucza.

Alokator

Funkcje Opis
get_allocator Zwraca obiekt alokatora, który jest używany do konstruowania mapy.

Funkcje przeciążone niebędące członkami

Funkcje Opis
operator== Sprawdza, czy dwie mapy są równe, czy nie.
operatorze!= Sprawdza, czy dwie mapy są równe, czy nie.
operator< Sprawdza, czy pierwsza mapa jest mniejsza od drugiej, czy nie.
operator<=< td> Sprawdza, czy pierwsza mapa jest mniejsza lub równa innej, czy nie.
operatora> Sprawdza, czy pierwsza mapa jest większa od drugiej, czy nie.
operator>= Sprawdza, czy pierwsza mapa jest większa niż równa drugiej, czy nie.
zamieniać() Zamienia element dwóch map.