Initialisierung eines ublas-Vektors aus einem C-Array

Ich schreibe eine Matlab-Erweiterung mit der C ++ - Unterbasisbibliothek und möchte meine Unterbasisvektoren aus den vom Matlab-Interpeter übergebenen C-Arrays initialisieren können. Wie kann ich den ublas-Vektor aus einem C-Array initialisieren, ohne die Daten (aus Gründen der Effizienz) explizit zu kopieren? Ich suche nach etwas in der Art von Code:

using namespace boost::numeric::ublas;

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

Im Allgemeinen ist es möglich, ein C ++ zu initialisierenstd::vector aus einem Array? Etwas wie das:

#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;
}

aber wo die Initialisierung die Daten nicht kopieren würde. In diesem Fall ist die Ausgabe

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

Ich möchte jedoch, dass die Ausgabe dieselbe ist, bei der die Aktualisierung des C-Arrays die Daten ändert, auf die der C ++ - Vektor zeigt

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

Antworten auf die Frage(6)

Ihre Antwort auf die Frage