STL контейнер map. Первое знакомство

Контейнер map/ Что это такое и с чем его едят. Объясните мне map. Да что же это такое. И что-то такое когда-то было в моей голове. Я никак не мог понять слова ассоциативность. Слово-то какое. Заморское. Блин, мы русские люди и хотим по-русски узнать что такое map в C++.

map — это такой продвинутый массив, который позволяет задавать себе именованный индекс и класть в этот именованный индекс значение. При этом этот самый именованный индекс может быть абсолютно любого типа. Это может быть число, строка и даже объект класса. Собственно и значение может быть абсолютно любого типа.

Ну, map не массив, конечно, но это наиболее близкая аналогия. Правильно говорить контейнер, который содержит в себе пару ключ-значение. Ключ — это и есть именованный индекс. Именованный индекс обозначает, что вместо номера индекса, этот индекс можно назвать как душе угодно. Это название и есть ключ map. А значение оно и в Африке значение.

Итак, чтобы подключить map, нужно подключить заголовочный файл map и, собственно, простейший код

Одномерны массив напоминает, да. Но он же более продвинут чем одномерный, давайте используем названия для индексов массива.

А вдруг у меня тысяча имен и это каждое что ли писать? Конечно нет. Записывать можно и программно, а выводить как и любой контейнер типа вектора. С небольшим отличием.

Ну что ж. Увидели, но это еще не все. Ключом может быть даже объект класса. Вот так-то. Но в этом случае придется применить некоторую дополнительную часть.

Вот такие вот фокусы. Зачем же он нужен? А это уже от фантазии зависит. Самые банальные применения — посчитать сколько каких символов встречается в строке, посчитать сколько каких слов встречается в тексте. В качестве ключа выступает подсчитываемое значение, а в качестве значения счетчик, считающий сколько чего уже встретилось. Но кроме этих задач существуют и другие задачи, где очень удобно использовать map. Телефонный справочник, Какой—нибудь словарь. Да и вообще применение он может найти очень во многих задчах, у меня фантазии столько нету.
Если до сих пор не понятно что за ключ и что за значение.
Русско-англ. словарь. Ключ -русское слово, значение — английский перевод
Прайс лист. Ключ Наименование товара. Значение — цена товара
Квартира. Ключ Номер, значение количество жителей.

И т.д. и т.п.
В последнем примере мною был использован массив потому как если имя уже есть, то при обращении к этому имени нового такого же имени добавлено не будет.

Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

Добавить комментарий

Ваш e-mail не будет опубликован.

Поиск

 
     

Случайная книга в электронном формате

Яндекс.Метрика
НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

Пришёл парень на собеседование. Дали ему тест на админа. Он его успешно прошёл и спросил: - А вы всем курьерам такие тесты даёте?

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок