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