Initialisierung einer map



  • Hallo,

    Ich habe eine map mit einer selbstdefinierten struct als Wert :

    map<int, MY_STRUCT> MY_MAP;

    Ist es möglich, diese Map sofort zu initialisieren, d.h. dem Strukturelement direkt bei der Anlage eines Map - Elements Werte zuzuweisen ?

    Momentan mache ich das so :

    ...

    // Hilfsstruktur fuer Initialisierung
    MY_STRUCT str;

    // die Map
    map<int, MY_STRUCT> MY_MAP;

    // Werte fuer erstes Element initialisieren
    str.uiLaenge = 20;
    str.uiBreite = 10;

    // Wert der Map zuweisen
    MY_MAP[1] = str;

    --> usw.

    Geht das nicht einfacher ?
    Vielen Dank für eure Hilfe. 🙂



  • Hallo

    Estwas vereinfachen kannst du es schon, wenn MY_STRUCT einen geeigneten Konstruktor hat :

    MY_MAP.insert(std::make_pair(1, MY_STRUCT(10, 20)));
    

    bis bald
    akari



  • Vielen Dank für die schnelle Hilfe.
    Ich hatte gehofft, dass eine Möglichkeit ähnlich der Initialisierung einer Struktur bei deren Deklaration existiert. aber auch dieser Tip hilft mir weiter, da er auch den Code reduziert.



  • Hallo

    Nein so eine Initialisierung wie du meinst gibt es wohl erst im nächsten C++ Standard.

    bis bald
    akari


Log in to reply