vector von vectoren Werte zuweisen



  • Hallo zusammen,

    ich habe ein kleines Problem und würde gerne deshalb euch um Hilfe bitten. Ich habe auch die Suchfunktion schon genutzt, aber leider keine zutreffende Antwort bekommen.

    Ich habe einen std::vector aus vectoren also sowas:

    std::vector< std::vector<int> > xyz;
    

    Der erste vector repräsentiert ein Feld von bspw. 200 Felder. Jedes dieser Felder wiederrum repäsentiert ein Anzahl an Punkten. Ich bekomme jetzt nacheinander Nachrichten, die ein beliebiges Feld enthalten und einen Punkt, der in das Feld einsortiert werden soll. Wie kann ich das in cpp suaber lösen?

    Ich suche nun sowas:

    xyz.at(var*width).push_back(number);
    

    Also das Feld wird abhängig von der Variablen "var" zugewiesen und in diesem Feld soll an den Ende des Feldvectors die Zahl "number" angehängt werden.

    Vielen, vielen Dank und beste Grüße,
    drummer51



  • Wo ist das Problem? Das ist gültiger Code!
    Die Multiplikation wirkt zwar komisch, aber ansonsten.



  • Prinzipiell funktioniert das so. Es würde auch so gehen:

    xyz[var*width].push_back(number);
    

    Wenn du sichergehen willst, dass das auch innerhalb der existierenden Grenzen stattfindet, dann etwas wie dies

    if(xyz.size() < var*width)
      xyz.resize(var*width+1);
    

    Siehe auch:
    http://www.cplusplus.com/reference/vector/vector/resize/



  • Hallo zusammen,

    vielen Dank für eure Antworten und den Tipp mit Grenzen. Ich konnte das Problem lösen.

    Gruß


Log in to reply