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