Inicializando un vector ublas desde una matriz C

Estoy escribiendo una extensión de Matlab usando la biblioteca de ublas de C ++, y me gustaría poder inicializar mis vectores ublas de los arrays de C pasados ​​por el interpeter de Matlab. ¿Cómo puedo inicializar el vector ublas desde una matriz C sin copiar (explícitamente) los datos (por razones de eficiencia)? Estoy buscando algo a lo largo de las siguientes líneas de código:

using namespace boost::numeric::ublas;

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

En general, ¿es posible inicializar un C ++?std::vector de una matriz? Algo como esto:

#include <iostream>
#include <vector>
using namespace std;

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

    pv[0] = 0;
    cout << "v[0]=" << v[0] << " " << "pv[0]=" << pv[0] << endl;

    return 0;
}

pero donde la inicialización no copiaría los datos. En este caso la salida es

v[0]=4 pv[0]=0

pero quiero que la salida sea la misma, donde la actualización de la matriz C cambia los datos apuntados por el vector C ++

v[0]=0 pv[0]=0

Respuestas a la pregunta(6)

Su respuesta a la pregunta