Convert std :: vector to array

Ich habe eine Bibliothek, die ein Array erwartet und es füllt. Ich möchte einen std :: vector anstelle eines Arrays verwenden. Also anstelle von

int array[256];
object->getArray(array);

Ich möchte zu tun

std::vector<int> array;
object->getArray(array);

Aber ich kann keinen Weg finden, es zu tun. Gibt es eine Möglichkeit, dafür std :: vector zu verwenden?

Danke fürs Lesen

EDIT: Ich möchte ein Update für dieses Problem platzieren: Ich habe mit C ++ 11 herumgespielt und einen besseren Ansatz gefunden. Die neue Lösung besteht darin, den Zeiger mit der Funktion std :: vector.data () auf das erste Element zu setzen. Wir können also Folgendes tun:

std::vector<int> theVec;
object->getArray(theVec.data()); //theVec.data() will pass the pointer to the first element

Wenn wir einen Vektor mit einer festen Anzahl von Elementen verwenden möchten, sollten wir stattdessen den neuen Datentyp std :: array verwenden (aus diesem Grund sollte der in der obigen Frage verwendete Variablenname "array" nicht mehr verwendet werden !!).

std::array<int, 10> arr; //an array of 10 integer elements
arr.assign(1); //set value '1' for every element
object->getArray(arr.data());

Beide Codevarianten funktionieren ordnungsgemäß in Visual C ++ 2010. Denken Sie daran: Dies ist C ++ 11-Code. Sie benötigen daher einen Compiler, der die Funktionen unterstützt!

Die Antwort unten ist immer noch gültig, wenn Sie C ++ 11 nicht verwenden!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage