map — Klasa
Używany do przechowywania i pobierania danych z kolekcji, w której każdy element jest parą, która ma zarówno wartość danych, jak i klucz sortowania.Wartość klucza jest unikatowa i jest używana do automatycznego sortowania danych.
Można bezpośrednio zmienić wartość elementu w mapie.Wartość klucza jest stała i nie można jej zmienić.Zamiast tego, wartości kluczy skojarzone ze starymi elementami muszą zostać usunięte, a nowe wartości klucza muszą zostać wstawione dla nowych elementów.
template <
class Key,
class Type,
class Traits = less<Key>,
class Allocator=allocator<pair <const Key, Type> >
> class map;
Parametry
Key
Typ danych klucza, który ma być przechowywany w mapie.Type
Typ danych elementu, który ma być przechowywany w mapie.Traits
Typ, który dostarcza obiekt funkcji, która może porównać dwie wartości elementów jako klucze sortowania, aby określić ich względną kolejność w mapie.Ten argument jest opcjonalny, a predykat binarny less<Key> jest wartością domyślną.Allocator
Typ reprezentujący przechowywany obiekt alokatora, który hermetyzuje szczegóły dotyczące alokacji mapy i dezalokacji pamięci.Ten argument jest opcjonalny, a jego wartość domyślna to allocator<pair<constKey*,* Type> >.
Uwagi
Klasa mapy standardowej biblioteki szablonów (STL) jest:
Kontenerem o zmiennym rozmiarze, który skutecznie pobiera wartości elementów na podstawie skojarzonych wartości klucza.
Odwracalny, ponieważ zapewnia dwukierunkowe iteratory do dostępu do jego elementów.
Posortowana, ponieważ jej elementy są uporządkowane według wartości kluczy zgodnie z określoną funkcją porównywania.
Unikatowa, ponieważ każdy z jej elementów musi mieć unikatowy klucz.
Kontenerem skojarzonych par, ponieważ jej wartości danych elementu różnią się od wartości klucza.
Klasą szablonu, ponieważ funkcjonalność, którą zapewnia, jest generyczna i dlatego niezależna od typu elementu lub klucza.Typy danych, których można użyć dla elementów i kluczy, są określane jako parametry w szablonie klasy wraz z funkcją porównywania oraz alokatorem.
Iterator dostarczony przez klasę mapy jest iteratorem dwukierunkowym, ale funkcje elementów członkowskich klasy insert i map mają wersje przyjmujące jako parametry szablonu słabszy iterator danych wejściowych, który ma mniej wymagań funkcjonalności niż te gwarantowane przez klasę iteratorów dwukierunkowych.Pojęcia innych iteratorów są powiązane przez udoskonalenia w ich funkcjonalnościach.Każde pojęcie iteratora ma swój własny zestaw wymagań, a algorytmy, które z nim pracują, muszą być ograniczone przez te wymagania.Iterator danych wejściowych może zostać wyłuskany, aby odwołać się do jakiegoś obiektu, a także może być zwiększony do następnego iteratora w sekwencji.
Zalecamy, aby wybrać typ kontenera na podstawie rodzaju wyszukiwania i wstawiania, którego wymaga aplikacja.Kontenery asocjacyjne są zoptymalizowane dla operacji wyszukiwania, wstawiania i usuwania.Funkcje elementów członkowskich, które jawnie obsługują te operacje, wykonują je w czasie najgorszego przypadku, który jest proporcjonalny do logarytmu liczby elementów w kontenerze.Wstawianie elementów nie unieważnia iteratorów, a usuwanie elementów unieważnia tylko te iteratory, które w szczególności wskazywały na usunięte elementy.
Zalecamy, aby kontener asocjacyjny z wyboru był mapą, gdy warunki, które kojarzą wartości z kluczami, są spełnione przez aplikację.Model dla tego rodzaju struktury jest uporządkowaną listą jednoznacznie występujących słów kluczowych mających skojarzone wartości ciągów, które zapewniają definicje.Jeśli wyraz ma więcej niż jedną poprawną definicję, tak że klucz nie jest unikatowy, wówczas mapa wielokrotnego dopasowania byłaby kontenerem z wyboru.Jeśli jest przechowywana tylko lista wyrazów, zestaw będzie odpowiednim kontenerem.Jeśli jest dozwolonych wiele wystąpień słów, to zestaw wielokrotny będzie odpowiedni.
Mapa porządkuje elementy, które kontroluje, przez wywołanie przechowywanego obiektu funkcji typu key_compare.Ten przechowywany obiekt jest funkcją porównywania, która jest dostępna poprzez wywołanie metody key_comp.Ogólnie rzecz biorąc, dowolne dwa dane elementy są porównywane, aby określić, czy jeden z nich jest mniejszy od drugiego lub czy są równoważne.W miarę porównywania wszystkich elementów, tworzona jest uporządkowana sekwencja nierównoważnych elementów.
[!UWAGA]
Funkcja porównywania jest predykatem binarnym, który wymusza ścisłe słabe porządkowanie w standardowym sensie matematycznym.Predykat binarny f(x,y) jest obiektem funkcji, który ma dwa obiekty argumentu x i y oraz wartość zwracaną true lub false.Kolejność nałożona na zestaw jest ścisłym słabym porządkowaniem, jeśli predykat binarny jest niezwrotny, przeciwsymetryczny i przechodni oraz jeśli równoważność jest przechodnia, gdzie dwa obiekty x i y są zdefiniowane jako równoważne, gdy zarówno f(x,y), jak i f(y,x) mają wartość false.Jeśli silniejszy warunek równości pomiędzy kluczami zastąpi ten równoważności, to porządkowanie będzie całkowite (w sensie, że wszystkie elementy są uporządkowane względem siebie), a dopasowane klucze będą od siebie nieodróżnialne.
Elementy członkowskie
Konstruktory
Konstruuje listę o określonym rozmiarze lub z elementami określonej wartości lub z określonego allocator lub jako kopię innej mapy. |
Typedefs
Element typedef dla klasy allocator dla obiektu mapy. |
|
Element typedef dla iteratora dwukierunkowego, który może odczytać element const w mapie. |
|
Element typedef dla wskaźnika do elementu const w mapie. |
|
Element typedef dla odwołania do elementu const przechowywanego w mapie w celu odczytu i wykonywania operacji const. |
|
Typ, który dostarcza iterator dwukierunkowy, który może odczytać dowolny element const w mapie. |
|
Element typedef całkowitoliczbowy ze znakiem dla liczby elementów mapy w zakresie między elementami wskazywanymi przez iteratory. |
|
Element typedef dla iteratora dwukierunkowego, który może odczytać lub zmodyfikować dowolny element w mapie. |
|
Element typedef dla obiektu funkcji, która może porównać dwa klucze sortowania, aby określić względną kolejność dwóch elementów w mapie. |
|
Element typedef dla klucza sortowania przechowywanego w każdym elemencie mapy. |
|
Element typedef dla danych przechowywanych w każdym elemencie mapy. |
|
Element typedef dla wskaźnika do elementu const w mapie. |
|
Element typedef dla odwołania do elementu przechowywanego w mapie. |
|
Element typedef dla iteratora dwukierunkowego, który może odczytać lub zmodyfikować element w odwróconej mapie. |
|
Całkowitoliczbowy element typedef bez znaku określający liczbę elementów w mapie. |
|
Element typedef dla typu obiektu przechowywanego jako element w mapie. |
Funkcje elementów członkowskich
Wyszukuje element z określoną wartością klucza. |
|
Zwraca iterator, który wskazuje na pierwszy element w mapie. |
|
Zwraca iterator const, który wskazuje na pierwszy element w mapie. |
|
Zwraca wartość const iteratora poza końcem. |
|
Usuwa wszystkie elementy mapy. |
|
Zwraca liczbę elementów w mapie, których klucz pasuje do klucza określonego w parametrze. |
|
Zwraca iterator const, który wskazuje na pierwszy element w odwróconej mapie. |
|
Zwraca iterator const, który wskazuje na lokalizację po ostatnim elemencie w odwróconej mapie. |
|
Wstawia element skonstruowany w miejscu do mapy. |
|
Wstawia element skonstruowany w miejscu do mapy, ze wskazówką położenia. |
|
Zwraca true, jeśli mapa jest pusta. |
|
Zwraca iterator poza końcem. |
|
Zwraca parę iteratorów.Pierwszy iterator w parze wskazuje na pierwszy element w map za pomocą klucza, która jest większy niż określony klucz.Drugi iterator w parze wskazuje na pierwszy element w map za pomocą klucza, która jest równy lub większy niż określony klucz. |
|
Usuwa element lub zakres elementów w mapie z określonych pozycji. |
|
Zwraca iterator, który wskazuje na pierwszą lokalizację elementu w mapie, który ma klucz równy określonemu kluczowi. |
|
Zwraca kopię obiektu allocator użytego do skonstruowania mapy. |
|
Wstawia element lub zakres elementów do mapy na określonej pozycji. |
|
Zwraca kopię obiektu porównania użytego do uporządkowania kluczy w mapie. |
|
Zwraca iterator do pierwszego elementu w mapie, którego wartość klucza jest równa lub większa od określonego klucza. |
|
Zwraca maksymalną długość mapy. |
|
Zwraca iterator, który wskazuje na pierwszy element w odwróconej mapie. |
|
Zwraca iterator, który wskazuje na lokalizację po ostatnim elemencie w odwróconej mapie. |
|
Zwraca liczbę elementów w mapie. |
|
Zamienia elementy z dwóch map. |
|
Zwraca iterator do pierwszego elementu w mapie, którego wartość klucza jest większa od określonego klucza. |
|
Pobiera kopię obiektu porównania, użytego do uporządkowania wartości elementów w mapie. |
Operatory
Wstawia element do mapy z określoną wartością klucza. |
|
Zastępuje elementy mapy kopią innej mapy. |
Wymagania
Nagłówek: <map>
Przestrzeń nazw: std
Zobacz też
Informacje
Bezpieczeństwo wątku w standardowej bibliotece C++
Standardowa biblioteka szablonów