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;
}

Важливо зауважити, що дані в асоціативному масиві автоматично відсортовані за ключем, а не в порядку додавання, тому програма описана вище дає такий вивід:

Виберемо місяць березень
Наступний за ним: вересень

Посилання[ред.ред. код]