Problemchen mit vector
-
Hallo!
Habe eine Funktion die aus einem Array ein vector macht und diesen vector zurückgibt:
-habe <vector> inkludiert
Ausschnitt:
vector<double> getInput(){ . . . input = new double[param.noframes]; //Array wird gefüllt . . //Array in vector umwandeln vector<double> Vec(input,input + param.noframes); return Vec;
In meiner Klasse habe ich
vector<double> getInput();
deklariert:
Es taucht folgende Fehlermedlug auf:
- ISO C++ forbids declaration of `vector' with no type - expected `;' before '<' token - no `std::vector<double, std::allocator<double> > AudioSet::getInput()' member function declared in class `AudioSet'
Woran kann das liegen?
Danke!
-
Fehlt da möglicherweise ein Semikolen am Ende einer Klassendefinition?
Nettes Speicherleck, übrigens
-
MFK schrieb:
Fehlt da möglicherweise ein Semikolen am Ende einer Klassendefinition?
Nettes Speicherleck, übrigens
Leider ist es das nicht
.
Das Komische ist, dass wenn ich statt
return Vec;
, mein Array mit
return input;
ausgeben will und dafür dann die methode mit
double* getInput();
und in meiner Klasse
double* getInput();
ändere, alles fuktioniert und er fehlerfrei kompiliert.
-
Hast du eine using-Direktive für std::vector oder std?
Falls ja: Zeig doch mal ein wenig von dem Umfeld der Funktion. Oder noch besser: Ein Minimalbeispiel, das den Fehler reproduziert.
-
MFK schrieb:
Hast du eine using-Direktive für std::vector oder std?
Falls ja: Zeig doch mal ein wenig von dem Umfeld der Funktion. Oder noch besser: Ein Minimalbeispiel, das den Fehler reproduziert.
Hallo!
Erstmal vielen dank für die blitzschnelle Antworten ;).
Die using-Direktive hatte ich überall stehn. Hab einfach ein paar Sachen ausprobiert wie ein fehlendes "delete" ergänzen, aber es lag anscheinend an einem Problem bzgl. Stack vs. Heap. Hab jedenfalls mein Array auf Stack angelegt und den Vector auf Heap und jetzt geht es.