vector - Initialisierung



  • Ich brauche für meine Klasse einen Container, in dem ich für verschiedene Positionen eine Bewertung speichern kann.

    Die Startpositionen werden dabei als std::vector<Position> übergeben.
    Nun möchte ich einen std::vector<std::pair<Position, double>> mit den Startpositionen initialisieren. Die Bewertungen dürfen dabei erstmal Standardwerte bleiben.

    Wie kann man das effizient machen?

    class A
    {
    private:
      std::vector<std::pair<Position, double>> pos_eval;
    public:
      A(const std::vector<Position>& initial_positions) : // is there an easy way to do this?
    }
    

  • Mod

    Das sollte sich kompakt und effizient schreiben lassen, indem du pos_eval mit dem Ergebnis eines passenden std::transform initialisierst.

    Aber: Wieso pos_eval mit Dummywerten füllen, wenn du die Positionsbewertungen noch gar nicht hast? Füg doch die Werte erst dann ein, wenn du sie auch hast!

    Sofern sich die Positionsbewertung allein aus den Elementen von initial_positions berechnen lässt, kannst du diese Rechnung natürlich auch in das transform schreiben.


Anmelden zum Antworten