Sdílet prostřednictvím


map – třída

Používá se pro ukládání a načítání dat z kolekce, ve které je každý prvek pár, který má datovou hodnotu a klíč řazení.Hodnota klíče je jedinečná a je použita k automatickému seřazení dat.

Hodnotu prvku v objektu map lze změnit přímo.Hodnota klíče je konstantní a nelze ji změnit.Namísto toho hodnoty klíčů přidružené ke starým prvkům musí být odstraněny a nové hodnoty klíče musí být vloženy pro nové prvky.

template <
   class Key, 
   class Type, 
   class Traits = less<Key>, 
   class Allocator=allocator<pair <const Key, Type> > 
> class map;

Parametry

  • Key
    Datový typ klíče, který se uloží v objektu map.

  • Type
    Typ dat prvku, který bude uložen v objektu map.

  • Traits
    Typ poskytující objekt funkce, který může porovnat dvě hodnoty prvků pro určení jejich relativního pořadí v objektu map.Tento argument je nepovinný a binární predikát less<Key> je výchozí hodnota.

  • Allocator
    Typ představující uložený objekt alokátoru, který zapouzdřuje informace o přidělování a navrácení paměti zpět objektu map.Tento argument je nepovinný a výchozí hodnota je allocator<pair<constKey*,* Type> >.

Poznámky

Třída map knihovny STL (Standard Template Library) je:

  • Kontejner s proměnnou velikostí, který efektivně načte hodnoty prvku na základě přidružených hodnot klíče.

  • Oboustranný, protože poskytuje obousměrné iterátory pro přístup k jeho prvkům.

  • Seřazená, protože její prvky jsou seřazeny podle hodnot klíče podle zadané funkce porovnání.

  • Jedinečná, vzhledem k tomu, že každý z jejích prvků musí mít jedinečný klíč.

  • Kontejner asociativních párů, protože jeho prvky hodnoty dat se liší od hodnot klíčů.

  • Třída šablony, protože funkce, které poskytuje jsou obecné a nezávislé na prvku nebo typu klíče.Datové typy použité pro prvky a klíče jsou zadány jako parametry v šabloně třídy společně s funkcí porovnání a alokátorem.

Iterátor poskytovaný třídou map je obousměrný iterátor, ale členské funkce tříd insert a map mají verze, které jako parametry šablony berou slabší vstupní iterátor, jehož požadavky na funkce jsou menší než ty, které jsou zaručeny třídou obousměrných iterátorů.Různé koncepty iterátorů se týkají upřesnění jejich funkčnosti.Každý koncept iterátoru má vlastní sadu požadavků a algoritmy, které s ním pracují musí být omezeny těmito požadavky.Ke vstupnímu iterátoru lze přistoupit přes ukazatel pro odkazování na některý objekt a může být zvýšena na další iterátor v sekvenci.

Doporučujeme založit volbu typu kontejneru podle druhu vyhledávání a vkládání, který je požadován aplikací.Asociativní kontejnery jsou optimalizovány pro operace vyhledávání, vkládání a odstranění.Členské funkce, které explicitně podporují tyto operace jsou provedeny v nejhorším čase, který je úměrný logaritmu počtu prvků v kontejneru.Vkládání prvků nezruší platnost žádných iterátorů a odstranění prvků zruší platnost pouze těch iterátorů, které výslovně odkazovaly na odstraněné prvky.

Doporučujeme objekt map vytvořit jako asociativní kontejner volby, pokud jsou v aplikaci splněny podmínky, které přiřazují hodnoty klíčům.Model tohoto typu struktury je uspořádaný seznam jednoznačně se vyskytujících klíčových slov, které mají přidružené hodnoty řetězce poskytující definice.Má-li slovo více než jednu správnou definici, takže tento klíč není jedinečný, potom by třída multimap měla být zvoleným kontejnerem.Pokud je uložen jen seznam slov, pak by třída set měla být vhodným kontejnerem.Pokud je povoleno více výskytů slova, měla by být použita třída multiset.

Třída map seřadí prvky pomocí volání uloženého objektu funkce typu key_compare.Tento uložený objekt je funkce porovnání, která je přístupná pomocí volání metody key_comp.Obecně jsou dva dané prvky porovnány pro určení, zda je jeden menší než druhý nebo zda jsou stejné.Při porovnání všech prvků je vytvořena seřazená sekvence neekvivalentních prvků.

[!POZNÁMKA]

Funkce porovnání je binární predikát, který indukuje přísné slabé seřazení ve standardním matematickém smyslu.Binární predikát f(x,y) je objekt funkce, který má dva objekty argumentu x a y a návratovou hodnotu true nebo false.Seřazení určené na objektu set je přísné slabé seřazení, pokud je binární predikát nereflexivní, antisymetrický a tranzitivní a je-li ekvivalence tranzitivní, kde jsou dva objekty x a y definovány jako ekvivalentní, když mají predikáty f(x,y)a f(y,x) hodnotu false.Pokud silnější podmínka rovnosti mezi klíči nahradí ekvivalenci, stane se pořadí celkovým (v tom smyslu, že všechny prvky jsou uspořádány ve vztahu k sobě navzájem) a odpovídající klíče budou od sebe nerozeznatelné.

Členy

Konstruktory

map

Sestaví seznam určité velikosti nebo s prvky určité hodnoty nebo s určitým objektem allocator nebo jako kopii jiného objektu map.

Typedefs

allocator_type

Definice typu třídy allocator pro objekt map.

const_iterator

Definice typu pro obousměrný iterátor, který může číst prvky const v objektu map.

const_pointer

Definice typu ukazatele na prvek const v objektu map.

const_reference

Definice typu odkazu na prvek const uložený v objektu map pro čtení a provádění operace const.

const_reverse_iterator

Typ, který poskytuje obousměrný iterátor, který může přečíst jakýkoli prvek const v objektu map.

difference_type

Definice typu celého čísla se znaménkem pro počet prvků objektu map v rozsahu mezi prvky, na které odkazují iterátory.

iterátor

Definice typu obousměrného iterátoru, který může číst nebo upravovat libovolný prvek v objektu map.

key_compare

Definice typu poskytující objekt funkce, který může porovnat dva klíče řazení pro určení relativního pořadí dvou prvků v objektu map.

key_type

Definice typu klíče řazení uloženého v jednotlivých prvcích objektu map.

mapped_type

Definice typu dat uložených v jednotlivých prvcích objektu map.

ukazatel

Definice typu ukazatele na prvek const v objektu map.

reference

Definice typu odkazu na prvek uložený v objektu map.

reverse_iterator

Definice typu obousměrného iterátoru, který může číst nebo upravovat prvek v obráceném objektu map.

size_type

Celočíselná definice typu bez znaménka pro počet prvků v objektu map.

value_type

Definice typu pro typ objektu, který je uložen jako prvek v objektu map.

Členské funkce

na

Vyhledá prvek se zadanou hodnotou klíče.

begin

Vrátí iterátor odkazující na první prvek v objektu map.

cbegin

Vrátí konstantní iterátor odkazující na první prvek v objektu map.

cend

Vrátí konstantní iterátor za koncem.

vymazat

Odstraní všechny prvky objektu map.

count

Vrátí počet prvků objektu map, jejichž klíč odpovídá klíči zadaného parametrem.

crbegin

Vrátí konstantní iterátor, který odkazuje na první prvek v obráceném objektu map.

crend

Vrátí konstantní iterátor, který odkazuje na umístění za posledním prvkem v převráceném objektu map.

emplace

Vloží vytvořený prvek na místo do objektu map.

emplace_hint

Vloží vytvořený prvek s náznakem umístění na místo do objektu map.

empty

Vrátí true, pokud je objekt map prázdný.

end

Vrátí iterátor za koncem.

equal_range

Vrátí pár iterátorů.První iterátor v páru odkazuje na první prvek objektu map s klíčem, který je větší než zadaný klíč.Druhý iterátor v páru odkazuje na první prvek v objektu map s klíčem, který je roven nebo větší než tento klíč.

smazat

Odebere prvek nebo rozsah prvků v objektu map od zadané pozice.

find

Vrátí iterátor odkazující na umístění prvku v objektu map, který má klíč stejný jako zadaný klíč.

get_allocator

Vrátí kopii objektu allocator, který je použit pro vytvoření objektu map.

insert

Vloží prvek nebo rozsah prvků na určenou pozici do objektu map.

key_comp

Vrátí kopii objektu porovnání, která je použit pro seřazení klíčů v objektu map.

lower_bound

Vrátí iterátor na první prvek objektu map s hodnotou klíče, který je roven nebo větší než zadaný klíč.

max_size

Vrátí maximální délku objektu map.

rbegin

Vrátí iterátor odkazující na první prvek v obráceném objektu map.

rend

Vrátí iterátor, který odkazuje na umístění za posledním prvkem v převráceném objektu map.

velikost

Vrátí počet prvků v objektu map.

swap

Zamění prvky dvou objektů map.

upper_bound

Vrátí iterátor na první prvek objektu map s hodnotou klíče, který je větší než zadaný klíč.

value_comp

Získá kopii objektu porovnání použitého pro seřazení hodnot prvků objektu map.

Operátory

operátor[]

Vloží prvek do objektu map se zadanou hodnotou klíče.

operator=

Nahradí prvky objektu map kopií jiného objektu map.

Požadavky

Hlavička: <map>

Obor názvů: std

Viz také

Referenční dokumentace

Bezpečný přístup z více vláken ve standardní knihovně C++

Standardní knihovna šablon

Koncepty

Kontejnery

Další zdroje

<map> Členové