Narzędzia użytkownika

Narzędzia witryny


opis_kontenera:map

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Previous revision
Next revision
Previous revision
opis_kontenera:map [2008/12/07 18:28]
sobol
opis_kontenera:map [2008/12/07 19:07] (aktualna)
sobol
Linia 7: Linia 7:
 Przykładem użycia mapy może być książka telefoniczna (powiązanie nazwisko (string) -> numer telefonu) lub interaktywny model nieba (powiązanie położenie planety (punkt) -> informacje o planecie). Innym przykładem użycia mapy jest {{:​opis_kontenera:​map.cpp|menedżer zasobów}}, lub algorytm wczytywania plików eksportowanych przez program Milkshape3d do indeksowanego bufora wierzchołków.\\ Przykładem użycia mapy może być książka telefoniczna (powiązanie nazwisko (string) -> numer telefonu) lub interaktywny model nieba (powiązanie położenie planety (punkt) -> informacje o planecie). Innym przykładem użycia mapy jest {{:​opis_kontenera:​map.cpp|menedżer zasobów}}, lub algorytm wczytywania plików eksportowanych przez program Milkshape3d do indeksowanego bufora wierzchołków.\\
 \\ \\
-W wewnętrznej implementacji mapy obiekty są posortowane według rosnącej wartości kluczy.\\+W wewnętrznej implementacji mapy obiekty są posortowane według rosnącej wartości kluczy. Projektanci mapy położyli główny nacisk na szybkość odwoływania się do konkretnych elementów według kluczy. Z założenia klucze muszą być unikalne - w przeciwieństwie do [[opis kontenera: multimap|multimapy]] nie mogą istnieć dwa elementy o jednakowym kluczu. Każdy element stanowi para klucz - wartość mapowana.\\ 
 +\\ \\ 
 +<code c++> 
 +template < class Key, class T, class Compare = less<​Key>,​ 
 +           class Allocator = allocator<​pair<​const Key,T> > > class map; 
 +</​code>​ 
 +Gdzie: 
 + * Key - typ jaki będzie przyjmować unikalny dla każdego elementu klucz. 
 + * T - typ wartości mapowanej, danych identyfikowanych z kluczem. 
 + * Compare - klasa porównująca dwa elementy typu Key, zwracająca true jeśli pierwszy z parametrów powinien być umieszczony w mapie przed drugim (jest nie większy). 
 + * Allocator - typ obiektu alokującego. Domyślnie używana jest klasa allocator.\\
 \\ \\
-Projektanci mapy położyli główny nacisk ​na szybkość ​odwoływania ​się do konkretnych elementów według kluczy. Z założenia klucze muszą być unikalne - przeciwieństwie ​do [[opis konteneramultimap|multimapy]] nie mogą istnieć dwa elementy o jednakowym kluczu.+=== Iteratory === 
 +Mapa wspiera iteratory dwukierunkowe. Przy ich pomocy można odwołać się zarówno ​do klucza jak i danych mapowanych, ​za pośrednictwem std::pair, przy czym pole first zawsze zawiera klucz, natomiast second zawsze zawiera dane mapowane. 
 +<code c++> 
 +typedef pair<​const Key, T> value_type;​ 
 +</​code>​ 
 +Tak więc wyłuskany iterator (*i) wskazuje na znaleziony obiekt value_type. 
 + 
 +=== Najważniejsze metody === 
 +== Iteratory == 
 +| begin | Zwraca Iterator na początek mapy. | 
 +| end | Zwraca Iterator na koniec mapy (nie istniejący w mapie). | 
 +== Zawartość mapy == 
 +| empty | sprawdza, czy mapa zawiera jakiekolwiek elementy | 
 +| size | zwraca liczbę elementów ​mapie | 
 +| max_size | zwraca maksymalną liczbę elementów w mapie | 
 +== Modyfikatory == 
 +| insert | wstawia nowy element | 
 +| erase | usuwa istniejący element | 
 +| swap | zamienia zawartość mapy która wywołuje z mapą podaną w parametrze | 
 +| clear | usuwa zawartość mapy | 
 +== Inne == 
 +| find | znajduje element o zadanym kluczu w mapie | 
 +| count | zlicza elementy o zadanym kluczu w mapie (może zwrócić 0 lub 1) | 
 +| operator[] | umożliwia dostęp ​do elementu o kluczu podanym operatorowi | 
 +\\ 
 +=== Więcej informacji === 
 +[[http://​msdn.microsoft.com/​en-us/​library/​s44w4h2s.aspx|MSDN]]\\ 
 +[[http://​www.sgi.com/​tech/​stl/​Map.html|SGI Doc]]\\ 
 +[[http://​www.cplusplus.com/​reference/​stl/​map/​|C++ Reference]]\\ 
 +[[http://​en.wikipedia.org/​wiki/​Map_(C%2B%2B_container)|Wikipedia]]\\
  
opis_kontenera/map.1228670923.txt.gz · ostatnio zmienione: 2008/12/07 18:28 przez sobol