Vektoren
-
Hallo
Kurze Frage: Kann ich einer Funktion, deren Datentyp eine Struktur ist, einen Vektor ebenfalls von diesem Datentyp übergeben?
In dem Vektor sind um die 1000 Messwerte mit je 3 Koordinaten x,y,z gespeichert. Der Rückgabetyp meiner Funktion soll ledigleich ein Wertepaar (x,y,z) aus einer Zeile sein.
danke schon im voraus
HANG LOOSE
-
Wie soll das denn werkeln? Vector ist doch ein ganz anderer Typ und hat nix mit deinem Struct zutun.
Du kannst ne Funktion schreiben die über den Vector iteriert und dann die andere Funktion aufruft...
-
Sorry.. beim nochmal drüberlesen verstehe ich das prob erst...
Ein Objekt kann ein Objekt des eigenen Typs übergeben bekommen (auch per Value). Daher sehe ich keinen Grund warum dies nicht funktionieren sollte....
-
Also,
hier mal ein Teil des Quelltextes:
template<typename T> struct Point3D { .... //an der Stelle sind dann x,y,z }; std::vector< Point3D<double> > punkte; //Hier stehen nach einer Berechnung die Messwerte drin ... //wenn jetzt ein Button gedrückt wird, springt das Programm in eine Funktion , von der die folgende aufgerufen wird Point3D<double> de_boor(/*hier sollen jetzt die punkte rein *- ich hätte es so gemacht: std::vector< Point3D<double> >point */, double t, int k, int typ) { ... return /*einen Punkt vom Typ Point3D*/; }
So in etwa
Und dann beschwert er sich, dass er Probleme beim Konvertieren hat
tschö
-
Hi,
Ich verstehe dein Problem nicht ganz. Aber entweder übergibst du den ganzen Vector an die Funktion:function(std::vector<Point3D<double> > vec)
Und innerhalb dieser Funktion greifst du dann mit vec[i] (...) darauf zu, oder du erwartest ein Struct:
function(Point3D<double> p)
Und da musst du dann einfach nur ein Element deines Vectors, also punkte[5] oso angeben.
Hoffe das Ich dein Problem verstanden habe..
Gruß,
Konrad
-
Tschaka es geht
Ich bedanke mich im Namen aller Hinterbliebenen
HANG LOOSE
-
Denke mal es liegt daran, dass du den Vector per Value übergibst...
Übergebe diesem mal per Referenz... ansonsten würde ich mal gucken was der Kopierkonstruktor deines Punkts verbricht... wenn dieser private bzw. protected ist kann der Vector sich selbst nicht kopieren...
-
Wie rufst du denn die Funktion auf und welche Fehlermeldung bekommst du genau?
-
Das Problem hat sich schon geklärt, danke nochmal für eure Hilfe.
tschö mit ö