Conversión entre C ++ std :: vector y C array sin copiar

Me gustaría poder convertir entre std :: vector y su matriz C subyacente int * sin copiar explícitamente los datos.

¿Std :: vector proporciona acceso a la matriz C subyacente? Estoy buscando algo como esto

vector<int> v (4,100)
int* pv = v.c_array();

EDITAR:

Además, ¿es posible hacer lo contrario, es decir, cómo inicializaría unstd::vector de una matriz C sin copiar?

int pv[4] = { 4, 4, 4, 4};
vector<int> v (pv);

Respuestas a la pregunta(5)

Su respuesta a la pregunta