mehrere arrys gleichzeitig definieren
-
ich habe neine function die als eingabe ein vector und nen integer n hat.
Nun will ich n array des größe y.size() haben.
also für einen wäre es ja:
double* a=NULL;
a=new double[y.size()];Ich will nun aber so n arrays haben a1, a2, a3 ......an
Muss irgendwie mit strings gehen +"i" . aber wie?
-
Das was ich geschrieben habe scheint ziemlicher Mist zu sein. Ich arbeite nochmal dran.
-
Hallo,
meinst du sowas in der Art:template<class T> T** create_multi_vec(const size_t nr_of_arrays, const size_t array_size) { T** vec = new T*[nr_of_arrays]; for(size_t i = 0; i < nr_of_arrays; ++i) vec[i] = new T[array_size]; return vec; }
Musst nur darauf achten, dass der Speicher auch wieder freigegeben wird. (Also am besten noch eine destroy_multi_vec-Funktion schreiben...)
Oder um dir tlw Arbeit zu ersparen, kannst du sicherlich auch was mit der STL machen.../edit: llaaaaaaaaaaaaaaaaaaannnnnngggggggggggggsaaaaaaaaaaaaaaaaaaammmmmmmmmmmmmmmmmmm
Caipi
-
das problem ist das ich arry brauche und keinen vector da ich die spalten einer Matrix aus der newmat library füllen will. Und das geht leider nur mit arrays
Matrix X(n,y.size());
X.Column(1)=a1
.
.
X.Column(n)=anwobei a1 bis an die arrys sind mit der größe y.size();
-
Wäre ja mit Caipis Lösung kein Problem:
double** A = create_multi_vec<double>(n, y.size()) Matrix X(n,y.size()); X.Column(1) = A[0]; . . X.Column(n) = A[n - 1];
-
genau den post hatte ich nicht beachtet