Карти є асоціативні контейнери які зберігають елементи у відображеному вигляді. Кожен елемент має ключове значення та відображене значення. Два зіставлених значення не можуть мати однакові ключові значення.
std::map — це шаблон класу для контейнерів карт, який визначено у файлі заголовка.
Linux перейменувати каталог
Основні функції-члени std::map
Деякі основні функції, пов’язані з std::map:
- почати() – Повертає ітератор до першого елемента на карті.
- кінець() – Повертає ітератор до теоретичного елемента, який слідує за останнім елементом у карті.
- розмір() – Повертає кількість елементів на карті.
- max_size() – Повертає максимальну кількість елементів, які може містити карта.
- порожній() – Повертає, чи карта порожня.
- вставка пари (ключ-значення, значення карти) – Додає новий елемент на карту.
- стерти (позиція ітератора) – Вилучає елемент у позиції, на яку вказує ітератор.
- стерти (const g) – Вилучає ключ-значення «g» із карти.
- очистити() – Видаляє всі елементи з карти.
Приклади std::map
У наступних прикладах показано, як виконувати основні операції з контейнерами карти.
Приклад 1: Функції begin() і end().
C++
// C++ program to illustrate the begin and end iterator> #include> #include> #include> using> namespace> std;> int> main()> {> > // Create a map of strings to integers> > mapint>mp; // Вставити деякі значення в карту mp['one'] = 1; mp['два'] = 2; mp['три'] = 3; // Отримати ітератор, що вказує на перший елемент у // карті mapint>::iterator it = mp.begin(); // Ітерація по карті та друк елементів while (it != mp.end()) { cout<< 'Key: ' << ', Value: ' ++it; } return 0; }> |
>
>Вихід
Key: one, Value: 1 Key: three, Value: 3 Key: two, Value: 2>
Складність вищеописаного способу:
Часова складність: O(n), де n – розмір карти.
Допоміжний простір: O(n)
приклад 2: функція size().
C++
// C++ program to illustrate the size() function> #include> #include> #include> using> namespace> std;> int> main()> {> > // Create a map of strings to integers> > mapint>карта; // Вставте деякі значення в карту map['one'] = 1; map['two'] = 2; map['three'] = 3; // Роздрукувати розмір карти cout<< 'Size of map: ' << map.size() << endl; return 0; }> |
>
>Вихід
Size of map: 3>
Складність вищеописаного способу:
Часова складність: O(1).
Приклад 3: Реалізація карти
CPP
// CPP Program to demonstrate the implementation in Map> // divyansh mishra -->divyanshmishra101010>> #include> #include> #include> using> namespace> std;> int> main()> {> > // empty map container> > map<> int> ,> int> >gquiz1;> > // insert elements in random order> > gquiz1.insert(pair<> int> ,> int> >(1, 40));> > gquiz1.insert(pair<> int> ,> int> >(2, 30));> > gquiz1.insert(pair<> int> ,> int> >(3, 60));> > gquiz1.insert(pair<> int> ,> int> >(4, 20));> > gquiz1.insert(pair<> int> ,> int> >(5, 50));> > gquiz1.insert(pair<> int> ,> int> >(6, 50));> > // another way of inserting a value in a map> > gquiz1[7] = 10;> > // printing map gquiz1> > map<> int> ,> int> >::ітератор itr;> > cout <<> '
The map gquiz1 is :
'> ;> > cout <<> ' KEY ELEMENT
'> ;> > for> (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr) {> > cout <<> ' '> ' ' << '
'; } cout << endl; // assigning the elements from gquiz1 to gquiz2 map |
>
>Вихід
The map gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 The map gquiz2 after assign from gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 gquiz2 after remov...>
Складність вищеописаного способу:
Часова складність: O(n log(n)), оскільки n — розмір карти
Допоміжні приміщення: O(n)
Приклад 4: Реалізація карти цілих чисел
C++
// C++ program to implement map container> #include> #include> #include> using> namespace> std;> int> main()> {> > // Create a map of strings to integers> > mapint>карта; // Вставте деякі значення в карту map['one'] = 1; map['two'] = 2; map['three'] = 3; // Надрукувати значення в карті cout<< 'Key: one, Value: ' << map['one'] << endl; cout << 'Key: two, Value: ' << map['two'] << endl; cout << 'Key: three, Value: ' << map['three'] << endl; // Check if a key is in the map if (map.count('four')>0) { cout<< 'Key 'four' is in the map' << endl; } else { cout << 'Key 'four' is not in the map' << endl; } return 0; }> |
>
>Вихід
Key: one, Value: 1 Key: two, Value: 2 Key: three, Value: 3 Key 'four' is not in the map>
Список усіх функцій std::map
Наступна таблиця містить усі функції, визначені в класі std::map.
функція | Визначення |
---|---|
map::insert() | Вставити елементи з певним ключем у контейнер карти –> O(log n) |
map:: count() | Повертає кількість збігів з елементом із ключ-значенням «g» у карті. –> O(log n) |
карта equal_range() | Повертає ітератор пар. Пара відноситься до меж діапазону, який включає всі елементи в контейнері, які мають ключ, еквівалентний k. |
стерти карту() | Використовується для видалення елементів із контейнера –> O(log n) |
карта rend() | Повертає зворотний ітератор, що вказує на теоретичний елемент безпосередньо перед першою парою ключ-значення в карті (яка вважається її зворотним кінцем). |
карта rbegin()
| Повертає зворотний ітератор, який вказує на останній елемент карти. |
карта find() | Повертає ітератор до елемента з ключ-значенням «g» у карті, якщо знайдено, інакше повертає ітератор до кінця. |
map crbegin() і crend() | crbegin() повертає постійний зворотний ітератор, який посилається на останній елемент у контейнері карти. crend() повертає постійний зворотний ітератор, що вказує на теоретичний елемент перед першим елементом у карті. |
map cbegin() і cend() | cbegin() повертає постійний ітератор, який посилається на перший елемент у контейнері карти. cend() повертає постійний ітератор, що вказує на теоретичний елемент, який слідує за останнім елементом мультивідображення. |
карта emplace() | Вставляє ключ і його елемент у контейнер карти. |
карта max_size() | Повертає максимальну кількість елементів, які може містити контейнер карти –> O(1) |
карта upper_bound() | Повертає ітератор до першого елемента, який еквівалентний зіставленому значенню з ключ-значенням «g» або обов’язково йде після елемента з ключ-значенням «g» у карті |
оператор карти= | Призначає вміст контейнера іншому контейнеру, замінюючи його поточний вміст. попередній обхід дерева |
відобразити lower_bound() | Повертає ітератор до першого елемента, який еквівалентний зіставленому значенню з ключ-значенням «g» або точно не передуватиме елементу з ключ-значенням «g» у карті –> O(log n) |
карта emplace_hint() | Вставляє ключ і його елемент у контейнер карти з заданою підказкою. |
map value_comp() | Повертає об’єкт, який визначає порядок розташування елементів на карті («<» за замовчуванням). |
map key_comp() | Повертає об’єкт, який визначає порядок розташування елементів на карті («<» за замовчуванням). |
map::size() | Повертає кількість елементів на карті. |
map::empty() | Повертає, чи карта порожня |
map::begin() і end() | begin() повертає ітератор до першого елемента на карті. end() повертає ітератор до теоретичного елемента, який слідує за останнім елементом у карті |
map::operator[] | Цей оператор використовується для посилання на елемент, присутній у позиції, заданій всередині оператора. |
map::clear() | Видаляє всі елементи з карти. |
map::at() і map::swap() | Функція at() використовується для повернення посилання на елемент, пов’язаний з ключем k. Функція swap() використовується для обміну вмістом двох карт, але карти мають бути одного типу, хоча розміри можуть відрізнятися. |