Map fungerer på mange måter likt som et "dictionary" i Python. Formålet med et map er å koble to verdier sammen. En kobling i et map deles inn i key (nøkkel) og value (verdi).
I eksempelet under oprettes et map som kobler sammen matvarer (key) med prisen på varen (value).
// Headerfil (foodPriceMap.hpp)
#pragma once
#include <map>
#include <string>
const std::map<std::string, int> foodPriceMap {
{"Milk", 10},
{"Bread", 15},
{"Salmon", 20},
};
For å hente ut verdien kan man bruke medlemsfunksjonen at().
// Hovedfil (main.cpp)
#include <iostream>
#include "foodPriceMap.hpp"
int main()
{
std::cout << "The price of the milk is " << foodPriceMap.at("Milk") << "kr." << std::endl;
}
For å legge til et element brukes medlemsfunksjonen insert().
foodPriceMap.insert({"Potet", 25}); // Legger til potet med pris 25
For å iterere gjennom map-et kan man bruke en for-løkke slik:
for (const auto& [key, value] : foodPriceMap) {
std::cout << key << ":\t" << value << std::endl;
}
For å fjerne et element kan man bruke medlemsfunksjonen erase().
foodPriceMap.erase("Milk");
Lik som vector har map en [] operator. Det frarådes å bruke denne, fordi den alltid oppretter verdien som blir etterspurt i map, selv om den ikke finnes, og det er egentlig ikke er meningen at den skal eksistere. I følgende eksempelet finnes det ikke en verdi som heter "Pepperkaker" i foodPriceMap, som [] operatoren da oppretter. Da brukes standardverdien 0, som gjør sammenligningen sant. Vi derfor anbefaler det alltid brukes at() og insert() i stede for [] operatoren.
if(foodPriceMap["Pepperkaker"] == 0) {
}
Det finnes mange andre nyttige medlemsfunksjoner som: