logo

Функція відображення C++

Карти є частиною C++ STL (стандартна бібліотека шаблонів). Карти — це асоціативні контейнери, які зберігають відсортовану пару ключ-значення, у якій кожен ключ унікальний і його можна вставляти або видаляти, але не можна змінювати. Значення, пов’язані з ключами, можна змінювати.

Наприклад: Карту співробітників, де ідентифікатор працівника є ключем, а ім’я – значенням, можна представити так:

Ключі Цінності
101 Микита
102 Робін
103 Глибокий
104 Джон

Синтаксис

 template <class key, map::key_type class t, map::mapped_type compare="less," map::key_compare alloc="allocator&lt;pair"> // map::allocator_type &gt; class map; </class>

Параметр

ключ: Ключовий тип даних, який буде зберігатися на карті.

тип: Тип даних значення, яке буде зберігатися на карті.

порівняти: Клас порівняння, який приймає два аргументи одного типу bool і повертає значення. Цей аргумент є необов’язковим, а двійковий предикат less є значенням за замовчуванням.

розподілити: Тип об'єкта розподілювача. Цей аргумент необов’язковий, а значенням за замовчуванням є розподільник.

Створення карти

Карти можна легко створити за допомогою наступного оператора:

 typedef pair value_type; 

Форма вище буде використана для створення карти з ключем типу Тип ключа і значення типу тип значення. Одна важлива річ полягає в тому, що ключ карти та відповідні значення завжди вставляються як пара, ви не можете вставити лише ключ або лише значення в карту.

Приклад 1

 #include #include #include #include using namespace std; int main() { map Employees; // 1) Assignment using array index notation Employees[101] = &apos;Nikita&apos;; Employees[105] = &apos;John&apos;; Employees[103] = &apos;Dolly&apos;; Employees[104] = &apos;Deep&apos;; Employees[102] = &apos;Aman&apos;; cout &lt;&lt; &apos;Employees[104]=&apos; &lt;&lt; Employees[104] &lt;&lt; endl &lt;&lt; endl; cout &lt;&lt; &apos;Map size: &apos; &lt;&lt; Employees.size() &lt;&lt; endl; cout &lt;&lt; endl &lt;&lt; &apos;Natural Order:&apos; &lt;&lt; endl; for( map::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii) { cout &lt;&lt; (*ii).first &lt;&lt; &apos;: &apos; &lt;&lt; (*ii).second &lt;&lt; endl; } cout &lt;&lt; endl &lt;&lt; &apos;Reverse Order:&apos; &lt;&lt; endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout &lt;&lt; (*ii).first &lt;&lt; &apos;: &apos; &lt;&lt; (*ii).second &lt;&lt; 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 

Функції члена

Нижче наведено список усіх функцій-членів map:

Будівельник/Руйнівник

Функції опис
конструктори Побудувати карту
есмінці Деструктор карт
оператор= Скопіюйте елементи карти на іншу карту.

Ітератори

Функції опис
почати Повертає ітератор, що вказує на перший елемент у карті.
cbegin Повертає ітератор const, що вказує на перший елемент у карті.
кінець Повертає ітератор, що вказує на минулий кінець.
декілька Повертає постійний ітератор, що вказує на минулий кінець.
rbegin Повертає зворотний ітератор, що вказує на кінець.
робить Повертає зворотний ітератор, що вказує на початок.
crbegin Повертає постійний зворотний ітератор, що вказує на кінець.
вірити Повертає постійний зворотний ітератор, що вказує на початок.

Ємність

Функції опис
порожній Повертає true, якщо карта порожня.
розмір Повертає кількість елементів на карті.
максимальний_розмір Повертає максимальний розмір карти.

Доступ до елемента

Функції опис
оператор [] Отримати елемент із заданим ключем.
в Отримати елемент із заданим ключем.

Модифікатори

Функції опис
вставка Вставити елемент на карту.
стерти Видалити елементи з карти.
своп Обмін вмістом карти.
ясно Видалити всі елементи карти.
Місцезнаходження Побудуйте та вставте нові елементи на карту.
emplace_hint Побудуйте та вставте нові елементи на карту за підказкою.

Спостерігачі

Функції опис
key_comp Повернути копію об’єкта порівняння ключів.
значення_комп Повернути копію об’єкта порівняння значень.

Операції

Функції опис
знайти Пошук елемента з заданим ключем.
рахувати Отримує кількість елементів, які відповідають даному ключу.
нижня_межа Повертає ітератор до нижньої межі.
верхня_межа Повертає ітератор до верхньої межі.
рівний_діапазон Повертає діапазон елементів, які відповідають заданому ключу.

Розподільник

Функції опис
get_allocator Повертає об’єкт розподілювача, який використовується для створення карти.

Перевантажені функції, які не є членами

Функції опис
оператор== Перевіряє, чи дві карти рівні чи ні.
оператор!= Перевіряє, чи дві карти рівні чи ні.
оператор< Перевіряє, чи перша карта менша за іншу.
оператор<=< td> Перевіряє, чи перша карта менша або дорівнює іншій чи ні.
оператор> Перевіряє, чи перша карта більша за інші.
оператор>= Перевіряє, чи перша карта є більшою за іншу чи ні.
своп() Обмінюється елементом двох карт.