stl map

no82

Grünschnabel
Hallo,
ich haette da mal ein paar Fragen zu dem Container Typ map.
Ich wuerde gern folgendes Konstukt in einer for Schleife belegen.
map<string,map<int,int>>
Wie kann ich denn nun diese Map mit Daten belegen?
Danke:confused:
 
Du willst wissen, wie man diese map befüllt? Das kommt ein bisschen darauf an, woher die Daten kommen, bzw. wie du diese einliest / beim Befüllen vorliegen hast.
Grundsätzlich geht das halt in etwa so:

Code:
Für jeden string-Key
   Erzeuge eine neue map<int,int>
   Für jeden int-Key
       Eintrag in der map machen
   In der map<string, map<int,int>> den Eintrag machen
 
Wenn du die Werte so vorliegen hast dann bleibt dir nichts anderes übrig als zu schachteln :)

C++:
#include<iostream>
#include<string>
#include<map>
int main()

{
// Variablen zum einfügen
std::string one = "one";
int key = 1;
int value = 437;
// maps intialisieren
std::map<std::string,std::map<int,int> > bigmap;
std::map<int, int> intmap;
// Werte einfügen
intmap.insert(std::pair<int, int>(key, value));
// noch mehr Werte in intmap einfügen...

// zum Schluss einen Eintrag in die große map ;)
bigmap.insert(std::pair<std::string, std::map<int, int> >(one, intmap));
return 0;
}

mfg :)
 
Hi.

Warum einfach, wenn's auch komplizierter geht... ;-]
C++:
// Variablen zum einfügen
std::string one = "one";
int key = 1;
int value = 437;

std::map<std::string,std::map<int,int> > bigmap;

bigmap[one][key] = value;
Außerdem könnte man statt der konkreten Instanzierung von std::pair<> die std::make_pair Hilfsfunktion verwenden.

Gruß
 
Zurück