Tengo una biblioteca que espera una matriz y la rellena. Me gustaría usar un std :: vector en lugar de usar una matriz. Así que en lugar deConvertir std :: vector en matriz
int array[256];
object->getArray(array);
me gustaría hacer:
std::vector<int> array;
object->getArray(array);
Pero no puedo encontrar una manera de hacerlo. ¿Hay alguna posibilidad de utilizar std :: vector para esto?
Gracias por leer!
EDIT: que desea colocar una actualización para este problema: Yo estaba jugando con C++ 11 y se encontró un mejor enfoque. La nueva solución es usar la función std :: vector.data() para obtener el puntero al primer elemento. por lo que podemos hacer lo siguiente:
std::vector<int> theVec;
object->getArray(theVec.data()); //theVec.data() will pass the pointer to the first element
Si queremos usar un vector con una cantidad fija de elementos que es mejor utilizar el nuevo tipo de datos std :: matriz en lugar (por cierto, por esta razón el nombre de la variable "matriz ", que se utilizó en la pregunta anterior, ¡ya no se debe usar!).
std::array<int, 10> arr; //an array of 10 integer elements
arr.assign(1); //set value '1' for every element
object->getArray(arr.data());
Ambas variantes código funcionará correctamente en Visual C++ 2010. Recuerde: este es C++ 11 Código por lo que necesitará un compilador que apoya las características!
¡La respuesta a continuación sigue siendo válida si no utiliza C++ 11!
Posible duplicado de [Cómo convertir vector a matriz C++] (http://stackoverflow.com/questions/2923272/how-to-convert-vector-to-array-c) – Trilarion