Udostępnij za pośrednictwem


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

map

Konstruuje listę o określonym rozmiarze lub z elementami określonej wartości lub z określonego allocator lub jako kopię innej mapy.

Typedefs

allocator_type

Element typedef dla klasy allocator dla obiektu mapy.

const_iterator

Element typedef dla iteratora dwukierunkowego, który może odczytać element const w mapie.

const_pointer

Element typedef dla wskaźnika do elementu const w mapie.

const_reference

Element typedef dla odwołania do elementu const przechowywanego w mapie w celu odczytu i wykonywania operacji const.

const_reverse_iterator

Typ, który dostarcza iterator dwukierunkowy, który może odczytać dowolny element const w mapie.

difference_type

Element typedef całkowitoliczbowy ze znakiem dla liczby elementów mapy w zakresie między elementami wskazywanymi przez iteratory.

iterator

Element typedef dla iteratora dwukierunkowego, który może odczytać lub zmodyfikować dowolny element w mapie.

key_compare

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.

key_type

Element typedef dla klucza sortowania przechowywanego w każdym elemencie mapy.

mapped_type

Element typedef dla danych przechowywanych w każdym elemencie mapy.

pointer

Element typedef dla wskaźnika do elementu const w mapie.

reference

Element typedef dla odwołania do elementu przechowywanego w mapie.

reverse_iterator

Element typedef dla iteratora dwukierunkowego, który może odczytać lub zmodyfikować element w odwróconej mapie.

size_type

Całkowitoliczbowy element typedef bez znaku określający liczbę elementów w mapie.

value_type

Element typedef dla typu obiektu przechowywanego jako element w mapie.

Funkcje elementów członkowskich

at

Wyszukuje element z określoną wartością klucza.

begin

Zwraca iterator, który wskazuje na pierwszy element w mapie.

cbegin

Zwraca iterator const, który wskazuje na pierwszy element w mapie.

cend

Zwraca wartość const iteratora poza końcem.

clear

Usuwa wszystkie elementy mapy.

count

Zwraca liczbę elementów w mapie, których klucz pasuje do klucza określonego w parametrze.

crbegin

Zwraca iterator const, który wskazuje na pierwszy element w odwróconej mapie.

crend

Zwraca iterator const, który wskazuje na lokalizację po ostatnim elemencie w odwróconej mapie.

emplace

Wstawia element skonstruowany w miejscu do mapy.

emplace_hint

Wstawia element skonstruowany w miejscu do mapy, ze wskazówką położenia.

empty

Zwraca true, jeśli mapa jest pusta.

end

Zwraca iterator poza końcem.

equal_range

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.

erase

Usuwa element lub zakres elementów w mapie z określonych pozycji.

find

Zwraca iterator, który wskazuje na pierwszą lokalizację elementu w mapie, który ma klucz równy określonemu kluczowi.

get_allocator

Zwraca kopię obiektu allocator użytego do skonstruowania mapy.

insert

Wstawia element lub zakres elementów do mapy na określonej pozycji.

key_comp

Zwraca kopię obiektu porównania użytego do uporządkowania kluczy w mapie.

lower_bound

Zwraca iterator do pierwszego elementu w mapie, którego wartość klucza jest równa lub większa od określonego klucza.

max_size

Zwraca maksymalną długość mapy.

rbegin

Zwraca iterator, który wskazuje na pierwszy element w odwróconej mapie.

rend

Zwraca iterator, który wskazuje na lokalizację po ostatnim elemencie w odwróconej mapie.

size

Zwraca liczbę elementów w mapie.

swap

Zamienia elementy z dwóch map.

upper_bound

Zwraca iterator do pierwszego elementu w mapie, którego wartość klucza jest większa od określonego klucza.

value_comp

Pobiera kopię obiektu porównania, użytego do uporządkowania wartości elementów w mapie.

Operatory

operator[]

Wstawia element do mapy z określoną wartością klucza.

operator=

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

Koncepcje

Kontenery

Inne zasoby

<map> Członkowie