Wie verwenden von vector::push_back()` mit einem struct?
Wie kann ich push_back
eine struct
in einen Vektor?
struct point {
int x;
int y;
};
std::vector<point> a;
a.push_back( ??? );
Du musst angemeldet sein, um einen Kommentar abzugeben.
Oder wenn Sie erlaubt sind, geben
point
einen Konstruktor, so dass Sie können verwenden Sie eine temporäre:Einige Leute werden einwenden, wenn man einen Konstruktor in einer Klasse deklariert mit
struct
, und es macht es nicht-POD, und vielleicht sind Sie nicht die Kontrolle über die definition vonpoint
. So wird diese option möglicherweise nicht zur Verfügung. Jedoch, Sie können eine Funktion schreiben, die bietet den gleichen Komfort:mypoint
.emplace_back
besser sein?push_back
, also ich war nicht dabei, geben Sie eine nicht-standard-Antwort, dass der Fragesteller die Umsetzung kann oder kann nicht noch umgesetzt 🙂emplace_back()
stattpush_back()
.Beachten, dass seit
a
ist ein Vektor, der die Punkte (keine Zeiger auf diese), die push_back erstellen Sie eine Kopie Ihrer point-struct-sop
können sicher zerstört werden, nachdem es den Bereich verlässt.Verwendung der geschweiften Klammer.