Wie kann ein Vektor aus einem Array initialisiert werden, ohne dass mehr Speicherplatz zugewiesen wird?
Der direkte Weg, einen Vektor aus einem Array zu initialisieren, scheint zu sein:
int sizeArr; int * array = getArray(sizeArr);
std::vector<int> vec(array, array+sizeArr);
Hier bekomme ich das Array von einer Funktion, die den Speicherplatz im Speicher zuweist und @ setsizeArr
als Referenz. {start edit} Leider ist die Funktion nicht von mir geschrieben und ich muss mich mit dem Array im C-Stil auseinandersetzen und es dann irgendwie in einen Vektor konvertieren. (Wenn möglich effizient). {end edit}
Wenn ich @ initialisievec
, offensichtlich reserviere ich dafür extra Platz. Wenn ich nicht beabsichtige, die Daten mit @ zu verwendarray
Kann man die Daten, auf die @ zeigt, irgendwie "verschieben"array
zum Vektorvec
und keinen Platz dafür separat zuweisen?