Map

For mer info klikk her.

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).

Opprette map

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

	

Hente og endre map

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

	

iterere gjennom map

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

	

Fjerne et element

For å fjerne et element kan man bruke medlemsfunksjonen erase().

		

foodPriceMap.erase("Milk");

	

[] operatoren

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) {

}

	

Andre nyttige medlemsfunksjoner

Det finnes mange andre nyttige medlemsfunksjoner som:

Klikk her for å lese mer om dem og annet om map.