Como inicializar o vetor da matriz sem alocar mais espaço de armazenamento?
A maneira direta de inicializar um vetor de uma matriz parece ser:
int sizeArr; int * array = getArray(sizeArr);
std::vector<int> vec(array, array+sizeArr);
Aqui, estou obtendo o array de uma função que aloca o espaço na memória e definesizeArr
por referência. {start edit} Infelizmente, a função não é escrita por mim e eu preciso lidar com a matriz de estilo C e convertê-la em um vetor de alguma forma. (Se possível com eficiência). {end edit}
Quando eu inicializovec
, obviamente, estou alocando espaço para ele separadamente. Se não tenho intenção de usar os dados usandoarray
mais, é possível de alguma forma "mover" os dados apontados porarray
para o vetorvec
e não alocar espaço para ele separadamente?