std::map
Zdefiniowane w nagłówku <map>
|
||
template< class Key, |
(1) | |
std::map (mapa, inaczej słownik) jest kontenerem asocjacyjnym, pozwalającym na przechowywanie posortowanej listy unikalnych par postaci klucz-wartość. Elementy są sortowane na podstawie funkcji porównującej Compare, aplikowanej do kluczy. Operacje znajdowania, wstawiania i usuwania elementów mają złożoność logarytmiczną. Słowniki są zazwyczaj implementowane jako drzewa czerwono-czarne.
Wszędzie, gdzie w bibliotece standardowej wykorzystywany jest koncept Compare, unikalność jest sprawdzana korzystając z relacji równoważności. Dwa obiekty a i b są uważane za równoważne, jeśli żaden z nich nie jest mniejszy od drugiego: !comp(a, b) && !comp(b, a).
std::map spełnia wymogi Container, AllocatorAwareContainer, AssociativeContainer i ReversibleContainer.
Spis treści |
[edytuj] Typy składowe
Typ składowy | Definicja | ||||
key_type | Key | ||||
mapped_type | T | ||||
value_type | std::pair<const Key, T> | ||||
size_type | Typ całkowitoliczbowy bez znaku (zwykle std::size_t) | ||||
difference_type | Typ całkowitoliczbowy ze znakiem (zwykle std::ptrdiff_t) | ||||
key_compare | Compare | ||||
allocator_type | Allocator | ||||
reference |
| ||||
const_reference |
| ||||
pointer |
| ||||
const_pointer |
| ||||
iterator | LegacyBidirectionalIterator | ||||
const_iterator | Constant BidirectionalIterator | ||||
reverse_iterator
|
std::reverse_iterator<iterator> | ||||
const_reverse_iterator
|
std::reverse_iterator<const_iterator> |
[edytuj] Klasy składowe
porównuje obiekty typu value_type (klasa) |
[edytuj] Metody
Konstruuje map (publiczna metoda) | |
Niszczy map (publiczna metoda) | |
przypisuje wartości do kontenera (publiczna metoda) | |
zwraca skojarzony alokator (publiczna metoda) | |
Dostęp do elementów | |
(C++11) |
dostęp do wskazanego elementu, ze sprawdzeniem zakresów (publiczna metoda) |
dostęp do wskazanego elementu (publiczna metoda) | |
Iteratory | |
zwraca iterator na początek kontenera (publiczna metoda) | |
zwraca iterator za koniec kontenera (publiczna metoda) | |
zwraca odwrócony iterator na początek (publiczna metoda) | |
zwraca odwrócony iterator za koniec kontenera (publiczna metoda) | |
Pojemność | |
sprawdza, czy kontener jest pusty (publiczna metoda) | |
zwraca liczbę elementów (publiczna metoda) | |
zwraca maksymalną możliwą liczbę elementów (publiczna metoda) | |
Modyfikatory | |
czyści zawartość (publiczna metoda) | |
wstawia elementy (publiczna metoda) | |
(C++11) |
konstruuje element "w miejscu" (publiczna metoda) |
(C++11) |
tworzy elementy "w miejscu", korzystając z podpowiedzi (publiczna metoda) |
usuwa elementy (publiczna metoda) | |
zamienia zawartość (publiczna metoda) | |
Przeszukiwanie | |
zwraca liczbę elementów o podanym kluczu (publiczna metoda) | |
znajduje element ze wskazanym kluczem (publiczna metoda) | |
zwraca przedział elementów o podanym kluczu (publiczna metoda) | |
zwraca iterator na pierwszy element nie mniejszy niż dany klucz (publiczna metoda) | |
zwraca iterator na pierwszy element większy niż dany klucz (publiczna metoda) | |
Obserwatory | |
zwraca funkcję porównującą klucze (publiczna metoda) | |
zwraca funkcję porównującą klucze obiektów typu value_type (publiczna metoda) |
[edytuj] Funkcje operujące na zawartości
leksykograficznie porównuje wartości w map (szablon funkcji) | |
specjalizacja dla algorytmu std::swap (szablon funkcji) |