Push_back bei Vector aus Objekten



  • Hi,
    ich habe mir einen Vektor definiert, der aus Objekten der Klasse circle besteht. (Von mir erstellt)

    vector<circle> circlevector;
    

    Das sollte noch stimmen ?!

    Jetzt wollte ich dem Vektor ein Element hinzufügen. Mir kam da "Push_back" in den Sinn. Dummerweise muss ich da einen Wert mit übergeben. Hier komm ich dann nicht weiter. 😉

    Gibt es da vielleicht was Passenderes oder wie geht das?

    Mfg Mo3bius



  • Also das geht ja eigentlich ganz einfach:

    vector< circle > circleVector;
    
    circle a;
    
    circleVector.push_back( a );
    

    Oder was ist dein Problem?

    Lg freeG


  • Mod

    Du willst die Größe um 1 erhöhen, aber kein konkretes Objekt einfügen? Dann entweder resize oder push_back mit einem standardkonstruierten Objekt. Aber wieso sollte man so etwas tun wollen? Ich glaube du hast da etwas falsch verstanden dezüglich der Benutzung von vector.



  • Ganz einfache Geschichte:

    /* ... */
    
    std::vector<Circle> circleVector;
    
    circleVector.push_back(Circle(/* Parameter für die Klasse*/));
    
    /* ... */
    

    Du gibst einfach als Parameter ein frisches Objekt mit benötigten Parametern an.



  • Manchmal kann ich meinen eigenen Gedanken nicht folgen. 😃

    Ich hatte genau das gemeint was fr33g geschrieben hat. Aus einem mir nicht bekannten Grund kam ich da aber grad nicht drauf. 😉

    Mfg Mo3bius



  • Wenn du nur willst, dass der Vektor Speicher für ein weiteres Objekt bereit hält (ohne es zu konstruieren), dann kannst du reserve benutzen.

    vec.reserve(vec.size() + 1);
    

    http://www.sgi.com/tech/stl/Vector.html


Anmelden zum Antworten