Menu
Coddy logo textTech

Mapa

Lekcja 9 z 23 w kursie C++ – Standardowa biblioteka szablonów w Coddy.

Map to kontener asocjacyjny, który przechowuje elementy utworzone z pary klucz i wartość przypisana, uporządkowane według określonego porządku.


 

Każdy element ma unikalny klucz. Domyślnie elementy są również przechowywane w kolejności rosnącej według kluczy. 


Jak więc zaimplementować mapy w C++? Najpierw musimy dołączyć plik nagłówkowy map za pomocą #include <map>.
Składnia inicjalizacji mapy w C++ wygląda następująco:

map<key_DataType, value_DataType> map_name ;

Aby zadeklarować mapę taką jak powyższa, która ma wartości typu string jako klucze i liczby całkowite jako odpowiadające im wartości, używamy następującego zapisu: 

map<string, int> myMap;

Następnie musimy dowiedzieć się, jak wstawiać elementy (pary klucz-wartość) do mapy. Istnieją dwie metody wstawiania nowych par klucz-wartość do mapy.

Pierwsza metoda polega na użyciu znaku równości. 

map_name[key] = value;

Spowoduje to zapisanie wartości „value” w mapie pod kluczem „key”.

myMap["apple"] = 3;

cout << myMap["apple"];
Output:
3

Druga metoda polega na użyciu funkcji insert(). Funkcja insert dodaje do mapy nową parę klucz-wartość z określonym kluczem i wartością.

map_name.insert({key, value});
myMap.insert({"banana", 1});

cout << myMap["banana"];
Output:
1

Metody mapy

MetodaDziałanie
begin()Zwraca iterator wskazujący na pierwszy element mapy
size()Zwraca liczbę elementów w mapie
empty()Zwraca informację, czy mapa jest pusta (1), czy nie (0)
erase()Usuwa z mapy parę o podanym kluczu
clear()Usuwa wszystkie elementy z mapy
challenge icon

Wyzwanie

Średni

Podano 5 imion i wyników z wejścia. Imiona i wyniki są dodawane naprzemiennie: najpierw podawane jest imię, a następnie wynik odpowiadający wcześniej podanemu imieniu i tak dalej. 
Po 10 danych wejściowych podawana jest kolejna liczba, która określa, wyniki ilu z podanych imion należy wyświetlić po każdym z nich w nowym wierszu.

 

Input
John 25
Ben 38
Ana 70
Jacob 95
Drake 50
3
Ben
Drake
Jacob
Output
38
50
95

Spróbuj swoich sił

#include <map>
#include <iostream>

using namespace std;

int main()
{
    // Enter your code here

    return 0;
}

Wszystkie lekcje w sekcji C++ – Standardowa biblioteka szablonów

Poćwicz samodzielnie: Kompilator C++ online