English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La map fa parte della STL C++ (Standard Template Library). La map è un contenitore associativo di coppie chiave-valore ordinato, in cui ogni chiave è unica e può essere inserita o rimossa, ma non modificata. Ma il valore associato alla chiave può essere modificato.
Ad esempio:Un contenitore di mappe per dipendenti, in cui l'ID del dipendente è la chiave e il nome è il valore, può essere rappresentato come:
chiave | valore |
---|---|
101 | Nikita |
102 | Robin |
103 | Deep |
104 | John |
template < class Key, // map::key_type class T, // map::mapped_type class Compare = less, // map::key_compare class Alloc = allocator<pair> // map::allocator_type > class map;
key:Il tipo dei dati della chiave da memorizzare nella mappa.
type:Il tipo dei dati del valore da memorizzare nella mappa.
compare:Una classe di confronto che accetta due parametri di tipo bool e restituisce un valore. Questo parametro è opzionale, il predicato binario less <“ key”> è il valore predefinito.
alloc:Il tipo dell'oggetto distributore. Questo parametro è opzionale, il valore predefinito è il distributore
E' possibile creare una mappa utilizzando la seguente istruzione:
typedef pair<const Key, T> value_type;
Le seguenti istruzioni verranno utilizzate per creare una chiave di tipoKey tipoevalore valuetipoper value_typedi mappa.Un punto importante è che le chiavi e i valori relativi della mappa vengono sempre inseriti in coppia, non è possibile inserire solo chiavi o solo valori nella mappa.
#include <cstring> #include <iostream> #include <map> #include <utility> using namespace std; int main() { mapEmployees; // 1) Utilizzo del simbolo di indice dell'array per assegnazione Employees[101] = "Nikita"; Employees[105] = "John"; Employees[103] = "Dolly"; Employees[104] = "Deep"; Employees[102] = "Aman"; cout << "Employees[104]=" << Employees[104] << endl << endl; cout << "Dimensione mappa: " << Employees.size() << endl; cout << endl << "Naturale ordine:" << endl; for(map::iterator ii = Employees.begin(); ii != Employees.end(); ++ii) { cout << (*ii).first << " : " << (*ii).second << endl; } cout << endl << "Ordine inverso:" << endl; for(map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout << (*ii).first << " : " << (*ii).second << endl; } }
Output:
Employees[104]=Deep Dimensione Map: 5 Ordine naturale: 101: Nikita 102: Aman 103: Dolly 104: Deep 105: John Ordine inverso: 105: John 104: Deep 103: Dolly 102: Aman 101: Nikita
Ecco l'elenco di tutte le funzioni membro del map:
函数 | 描述 |
---|---|
constructors | Costruzione del map |
destructors | Distruttore del map |
operator= | Copia gli elementi del map in un altro contenitore map. |
函数 | 描述 |
---|---|
begin | Ritorna un iteratore che punta al primo elemento del map. |
cbegin | Ritorna un iteratore costante che punta al primo elemento del map. |
end | Ritorna un iteratore che punta alla fine. |
cend | Ritorna un iteratore costante che punta alla fine. |
rbegin | Ritorna un iteratore che punta alla fine. |
rend | Ritorna un iteratore che punta all'inizio. |
crbegin | Ritorna un iteratore costante che punta alla fine. |
crend | Ritorna un iteratore costante che punta all'inizio. |
函数 | 描述 |
---|---|
empty | Se il map è vuoto, restituisce true. |
size | Ritorna il numero di elementi nel map. |
max_size | Ritorna la capacità massima del map. |
函数 | 描述 |
---|---|
operator[] | Ricerca l'elemento con la chiave data. |
at | Ricerca l'elemento con la chiave data. |
函数 | 描述 |
---|---|
insert | Inserisce l'elemento nel map. |
erase | Elimina l'elemento dal map. |
swap | Scambia il contenuto del map. |
clear | Elimina tutti gli elementi del map. |
emplace | Costruisce un nuovo elemento e lo inserisce nel map. |
emplace_hint | Costruisce un nuovo elemento tramite un suggerimento e lo inserisce nel map. |
函数 | 描述 |
---|---|
key_comp | Ritorna una copia dell'oggetto di confronto della chiave. |
value_comp | Ritorna una copia dell'oggetto di confronto del valore. |
函数 | 描述 |
---|---|
find | Cerca l'elemento con la chiave data. |
count | Ottiene il numero di elementi corrispondenti alla chiave data. |
lower_bound | Ritorna il limite inferiore dell'iteratore. |
upper_bound | 返回迭代器上限一个。 |
equal_range | 返回范围元素匹配键给定。 |
函数 | 描述 |
---|---|
get_allocator | 返回对象分配器构造map。 |
函数 | 描述 |
---|---|
operator== | 检查两个map是否相等。 |
operator! MessageLookup | 检查两个map是否相等。 |
operator< | 检查第一个map是否小于其他map。 |
operator<= | 检查第一个map是否小于或等于其他map。 |
operator> | 检查第一个map是否大于其他map。 |
operator>= | 检查第一个map是否大于其他map。 |
swap() | 交换元素两个map。 |