vector übergabe an function
-
Generell kann man das auch so lösen:
struct str { typedef std::vector<str> TStrVector; }; void getAuftrag(str::TStrVector& vec) [...]
Vorteil:
Du musst nicht immer das vector ausschreiben und hast garantiert überall den selben Typ von vector.
Und zu deinen Augen:
Schau in deinen ersten Post :).
Da steht std::vector<struct str>.
-
benenn mal str nach IchWeissDasDasGeht um ... wenn das immer noch nicht tut guck mal ob du mit VS in der cpp Toolchain bist - das kann ja auch VB und C# und so?
-
padreigh schrieb:
benenn mal str nach IchWeissDasDasGeht um ... wenn das immer noch nicht tut guck mal ob du mit VS in der cpp Toolchain bist - das kann ja auch VB und C# und so?
Eh, da würde der Compiler schon über Dateinamen meckern...
-
@Scorcher Ich fische im Trüben - es SOLLTE gehen.
Was manchmal auch tut, ist bei VS einfach ein neues Projekt aufsetzen, Klassen neu anlegen, Inhalte (copy&paste) rüberkopieren - zeitweise verheddert der sich in seinen eigenen Projektdateien ... ansonsten wechsel auf ein vernünftiges BS
-
klar immer ein hammerargument..ein neues BS
-
Etwas google-Fu hat es mir ermöglicht deine Fehlermeldung zu reproduzieren:
#include <vector> using namespace std; struct str{}; void getAuftrag(vector<str>& v) { } int main() { vector<int> test; //anderer template parameter! getAuftrag(test); }
Wenn du die komplette Fehlermeldung anschaust, sollte danach etwas stehen wie
with
[
_Ty=int
]
and
[
_Ty=str
]Du verwendest wohl 2 unterschiedliche typen für deinen vector, deswegen gehts nicht. Wo das genau ist musst du selbst rausfinden
-
selbst wenn ich nun das & weglasse kommt eine Fehlermeldung die besagt:
cannot convert from std::vector<_ty> to std::vector<_ty>was ja nun irgendwie gar keinen sinn macht warum er das nicht konvertieren kann...
-
Poste doch mal bitte den code.
Du kannst natürlich nicht einfachstruct str { }; void getAuftrag(std::vector<str>& vec) { } std::vector<str> vec; getAuftrag(vec);
schreiben, wie von dir zuletzt gepostet. Die letzten beiden Zeilen gehören in die main.
-
selbst wenn ich nun das & weglasse kommt eine Fehlermeldung die besagt:
cannot convert from std::vector<_ty> to std::vector<_ty>was ja nun irgendwie gar keinen sinn macht warum er das nicht konvertieren kann...
Doch, lies dir zum Teufel doch mal die ganze Fehlermeldung durch!
das _ty vom ersten vector ist nicht dasselbe wie das _ty vom 2.
Poste doch einfach mal die ganze fehlermeldung, dann kann ichs dir auch genauer sagen.
Du kannst nunmal in einen vector<int> (nur mal als beispiel) in einen vector<char> umwandeln. Genausowenig wie in eine vector<char>&
-
Du kannst nunmal keinen vector<int>...
fixed
-
jetzt hab ichs...hab wirklich was auf dem Auge
die struct war eine andere....jetzt habe ich auch die fehlermeldung verstanden
danke für eure Hinweise
-
Gern geschehen :>
Ich ignorier ja auch gerne die Informationen nach der ersten Zeile bei solchen Template-Fehlermeldungen