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
-
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);