Map (STL)
Зовнішній вигляд
map - контейнер STL, що зберігає набір даних формату ключ - значення (інша назва - асоціативний масив. При цьому ключами можуть бути будь-які об'єкти, з умовою унікальності ключів. Ключі можуть повторюватись в подібному контейнері multimap (STL).
Приклад використання
Найкраще зрозуміти застосування асоціативних масивів на прикладі:
#include <iostream>
#include <map>// Заголовок в якому знаходиться map
#include <string>
using namespace std;
int main()
{
map<string,int> months;//Оголошуємо асоціативний масив з ключами - рядками, і цілими даними.
months["січень"]=1;
months["лютий"]=2;
// ... // Заради економії місця пропущено тепліші місяці
months["грудень"]=12;
map<string,int>::iterator it; // Ітератор по контейнеру
for(it=months.begin();it!=months.end();it++) //Виводимо всі
{
cout << it->first << " " << it->second << endl;// Ітератор це двійка: ключ, значення
// Ключ в полі first, а значення у полі second
}
it=months.find("березень");
cout << "Виберемо місяць " << it->first << endl;
it++;
cout << "Наступний за ним: " << it->first;
return 0;
}
Важливо зауважити, що дані в асоціативному масиві автоматично відсортовані за ключем, а не в порядку додавання, тому програма описана вище дає такий вивід:
Виберемо місяць березень Наступний за ним: вересень