Мапе су део Ц++ СТЛ (Стандард Темплате Либрари). Мапе су асоцијативни контејнери који чувају сортирани пар кључ-вредност, у којима је сваки кључ јединствен и може се уметнути или избрисати, али се не може мењати. Вредности повезане са кључевима се могу променити.
На пример: Мапа запослених где је ИД запосленог кључ, а име вредност може се представити као:
| Кључеви | Вредности |
|---|---|
| 101 | Никита |
| 102 | Робин |
| 103 | Дубоко |
| 104 | Јохн |
Синтакса
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>
Параметар
кључ: Кључни тип података који се чува на мапи.
тип: Тип података вредности који се чува на мапи.
упоредити: Класа за поређење која узима два аргумента истог типа боол и враћа вредност. Овај аргумент је опциони и бинарни предикат мање је подразумевана вредност.
доделити: Тип објекта алокатора. Овај аргумент је опциони и подразумевана вредност је алокатор.
басе64 јавасцрипт декодирање
Креирање мапе
Мапе се лако могу креирати користећи следећу изјаву:
typedef pair value_type;
Горњи образац ће се користити за креирање мапе са кључем типа Тип кључа и вредност типа тип вредности. Једна важна ствар је да се кључ мапе и одговарајуће вредности увек убацују као пар, не можете уметнути само кључ или само вредност у мапу.
Пример 1
#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; } } Излаз:
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
Функције чланова
Испод је листа свих функција чланова мапе:
Градитељ/разарач
| Функције | Опис |
|---|---|
| конструктори | Конструишите мапу |
| разарачи | Деструктор мапе |
| оператор= | Копирајте елементе карте на другу мапу. |
Итератори
| Функције | Опис |
|---|---|
| започети | Враћа итератор који показује на први елемент на мапи. |
| цбегин | Враћа конст итератор који показује на први елемент на мапи. |
| крај | Враћа итератор који показује на прошли крај. |
| неколико | Враћа константни итератор који показује на прошли крај. |
| рбегин | Враћа обрнути итератор који показује на крај. |
| чини | Враћа обрнути итератор који показује на почетак. |
| црбегин | Враћа константни обрнути итератор који показује на крај. |
| веровати | Враћа константни обрнути итератор који показује на почетак. |
Капацитет
| Функције | Опис |
|---|---|
| празан | Враћа тачно ако је мапа празна. |
| величина | Враћа број елемената на мапи. |
| мак_сизе | Враћа максималну величину мапе. |
Елемент Аццесс
| Функције | Опис |
|---|---|
| оператер[] | Преузми елемент са датим кључем. |
| ат | Преузми елемент са датим кључем. |
Модификатори
| Функције | Опис |
|---|---|
| уметнути | Уметните елемент у мапу. |
| обрисати | Обришите елементе са мапе. |
| свап | Размените садржај мапе. |
| јасно | Избришите све елементе мапе. |
| локација | Конструишите и убаците нове елементе у мапу. |
| емплаце_хинт | Конструишите и убаците нове елементе у мапу помоћу наговештаја. |
Посматрачи
| Функције | Опис |
|---|---|
| кеи_цомп | Врати копију објекта за поређење кључева. |
| валуе_цомп | Врати копију објекта за поређење вредности. |
Операције
| Функције | Опис |
|---|---|
| наћи | Потражите елемент са датим кључем. |
| цоунт | Добија број елемената који се подударају са датим кључем. |
| Доња граница | Враћа итератор на доњу границу. |
| Горња граница | Враћа итератор на горњу границу. |
| једнак_опсег | Приказује опсег елемената који се подудара са датим кључем. |
Алоцатор
| Функције | Опис |
|---|---|
| гет_аллоцатор | Враћа објекат алокатора који се користи за конструисање мапе. |
Преоптерећене функције које нису чланови
| Функције | Опис |
|---|---|
| оператор== | Проверава да ли су две карте једнаке или не. |
| оператор!= | Проверава да ли су две карте једнаке или не. |
| оператор< | Проверава да ли је прва мапа мања од друге или не. |
| оператер<=< td> | Проверава да ли је прва мапа мања или једнака другој или не. | =<>
| оператор> | Проверава да ли је прва мапа већа од друге или не. |
| оператор>= | Проверава да ли је прва мапа већа од једнака другој или не. |
| свап() | Размењује елемент две карте. |