J'ai une bibliothèque qui attend un tableau et le remplit. Je voudrais utiliser un vecteur std :: au lieu d'utiliser un tableau. Ainsi, au lieu deConvertir std :: vector en tableau
int array[256];
object->getArray(array);
Je voudrais faire:
std::vector<int> array;
object->getArray(array);
Mais je ne peux pas trouver un moyen de le faire. Est-il possible d'utiliser std :: vector pour cela?
Merci d'avoir lu!
EDIT: Je veux placer une mise à jour à ce problème: je jouais avec 11 C++ et trouvé une meilleure approche. La nouvelle solution consiste à utiliser la fonction std :: vector.data() pour obtenir le pointeur sur le premier élément. On peut donc faire ce qui suit:
std::vector<int> theVec;
object->getArray(theVec.data()); //theVec.data() will pass the pointer to the first element
Si nous voulons utiliser un vecteur avec une quantité fixe d'éléments nous mieux utiliser le nouveau type de données std :: tableau au lieu (BTW, pour cette raison, le nom de la variable « tableau ", qui a été utilisé dans la question ci-dessus ne devrait plus être utilisé !!).
std::array<int, 10> arr; //an array of 10 integer elements
arr.assign(1); //set value '1' for every element
object->getArray(arr.data());
Les deux variantes de code fonctionne correctement dans Visual C++ 2010. Rappelez-vous: c'est C++ 11 Code de sorte que vous aurez besoin d'un compilateur qui prend en charge les fonctionnalités!
La réponse ci-dessous est toujours valable si vous n'utilisez pas C++ 11!
Possible copie de [Comment convertir un vecteur en tableau C++] (http://stackoverflow.com/questions/2923272/how-to-convert-vector-to-array-c) – Trilarion