Kartes ir daļa no C++ STL (standarta veidņu bibliotēkas). Kartes ir asociatīvie konteineri, kuros tiek glabāts sakārtots atslēgu un vērtību pāris, kurā katra atslēga ir unikāla un to var ievietot vai dzēst, bet nevar mainīt. Ar taustiņiem saistītās vērtības var mainīt.
Piemēram: Darbinieku karti, kur darbinieka ID ir atslēga un vārds ir vērtība, var attēlot šādi:
Atslēgas | Vērtības |
---|---|
101 | Ņikita |
102 | Robins |
103 | Dziļi |
104 | Džons |
Sintakse
template <class key, map::key_type class t, map::mapped_type compare="less," map::key_compare alloc="allocator<pair"> // map::allocator_type > class map; </class>
Parametrs
atslēga: Galvenais datu tips, kas jāsaglabā kartē.
veids: Kartē saglabājamās vērtības datu tips.
salīdzināt: Salīdzināšanas klase, kas izmanto divus viena veida bool argumentus un atgriež vērtību. Šis arguments nav obligāts, un binārais predikāts mazāk ir noklusējuma vērtība.
piešķirt: Sadalītāja objekta tips. Šis arguments nav obligāts, un noklusējuma vērtība ir allokators .
izņēmumu apstrādes java
Kartes izveide
Kartes var viegli izveidot, izmantojot šādu paziņojumu:
typedef pair value_type;
Iepriekš esošā veidlapa tiks izmantota, lai izveidotu karti ar atslēgu veida Atslēgas veids un tipa vērtība vērtības veids. Svarīgi ir tas, ka kartes atslēga un atbilstošās vērtības vienmēr tiek ievietotas kā pāris, kartē nevar ievietot tikai atslēgu vai tikai vērtību.
1. piemērs
#include #include #include #include using namespace std; int main() { map Employees; // 1) Assignment using array index notation Employees[101] = 'Nikita'; Employees[105] = 'John'; Employees[103] = 'Dolly'; Employees[104] = 'Deep'; Employees[102] = 'Aman'; cout << 'Employees[104]=' << Employees[104] << endl << endl; cout << 'Map size: ' << Employees.size() << endl; cout << endl << 'Natural Order:' << endl; for( map::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << endl; } cout << endl << 'Reverse Order:' << endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << endl; } }
Izvade:
Employees[104]=Deep Map size: 5 Natural Order: 101: Nikita 102: Aman 103: Dolly 104: Deep 105: John Reverse Order: 105: John 104: Deep 103: Dolly 102: Aman 101: Nikita
Dalībnieku funkcijas
Zemāk ir visu kartes dalībnieku funkciju saraksts:
Celtnieks/iznīcinātājs
Funkcijas | Apraksts |
---|---|
konstruktori | Izveidojiet karti |
iznīcinātāji | Kartes iznīcinātājs |
operators= | Kopējiet kartes elementus citā kartē. |
Iteratori
Funkcijas | Apraksts |
---|---|
sākt | Atgriež iteratoru, kas norāda uz pirmo elementu kartē. |
cbegin | Atgriež const iteratoru, kas norāda uz pirmo elementu kartē. |
beigas | Atgriež iteratoru, kas norāda uz pagātnes beigas. |
daži | Atgriež pastāvīgu iteratoru, kas norāda uz pagātnes beigas. |
rbegin | Atgriež apgriezto iteratoru, kas norāda uz beigām. |
padara | Atgriež apgriezto iteratoru, kas norāda uz sākumu. |
crbegin | Atgriež pastāvīgu reverso iteratoru, kas norāda uz beigām. |
ticēt | Atgriež pastāvīgu reverso iteratoru, kas norāda uz sākumu. |
Jauda
Funkcijas | Apraksts |
---|---|
tukšs | Atgriež patieso vērtību, ja karte ir tukša. |
Izmērs | Atgriež elementu skaitu kartē. |
max_size | Atgriež maksimālo kartes izmēru. |
Elementu piekļuve
Funkcijas | Apraksts |
---|---|
operators[] | Izgūt elementu ar doto atslēgu. |
plkst | Izgūt elementu ar doto atslēgu. |
Modifikatori
Funkcijas | Apraksts |
---|---|
ievietot | Ievietot elementu kartē. |
dzēst | Dzēst elementus no kartes. |
mijmaiņa | Apmainieties ar kartes saturu. |
skaidrs | Dzēsiet visus kartes elementus. |
atrašanās vieta | Izveidojiet un ievietojiet kartē jaunos elementus. |
emplace_hint | Izveidojiet un ievietojiet kartē jaunus elementus ar mājienu. |
Novērotāji
Funkcijas | Apraksts |
---|---|
key_comp | Atgriezt atslēgu salīdzināšanas objekta kopiju. |
value_comp | Atgriezt vērtību salīdzināšanas objekta kopiju. |
Operācijas
Funkcijas | Apraksts |
---|---|
atrast | Meklējiet elementu ar doto atslēgu. |
skaitīt | Iegūst to elementu skaitu, kas atbilst dotajai atslēgai. |
apakšējā_ robeža | Atgriež iteratora apakšējo robežu. |
augšējā_ robeža | Atgriež iteratora augšējo robežu. |
vienāds_diapazons | Atgriež elementu diapazonu, kas atbilst dotajai atslēgai. |
Alokators
Funkcijas | Apraksts |
---|---|
get_allocator | Atgriež sadalītāja objektu, kas tiek izmantots kartes izveidošanai. |
Ne-biedru pārslogotas funkcijas
Funkcijas | Apraksts |
---|---|
operators== | Pārbauda, vai abas kartes ir vienādas. |
operators!= | Pārbauda, vai abas kartes ir vienādas. |
operators< | Pārbauda, vai pirmā karte ir mazāka par citu. |
operators<=< td> | Pārbauda, vai pirmā karte ir mazāka vai vienāda ar citu vai nav. | =<>
operators> | Pārbauda, vai pirmā karte ir lielāka par citu. |
operators>= | Pārbauda, vai pirmā karte ir lielāka par vienādu ar citu. |
apmainīt () | Apmaina divu karšu elementu. |