das erste leere Feld eines Arrays finden
-
Hallo,
ich war offenbar zu dumm die richtigen Suchwörter einzugeben.
Kurze Frage:
Wie kriegt man das erste leere Feld eines Arrays?
Anschaulichkeitsbsp:int Mark[5]; Mark[GetFirstEmpty(Mark)] = 2; (...) int GetFirstEmpty(int Arr[]) { //??? };oder irgendwie so...
DANKE!
-
Es gibt in C++ keine leeren Felder in Arrays. Am besten ist, Du initialisiert das Array mit einem für deine Zwecke ungültigen Wert, zb alle Felder auf -1 setzen.
Dann weisst du, dass dort wo dieser Wert steht ein "leeres" Feld ist.
-
Oder nimmst std::vector<...>
-
MiP schrieb:
alle Felder auf -1 setzen.
LOL
Das ist echt cool, denn genau auf den Gedanken kam ich auch! Sogar mit dem selben Wert "-1"
Jedoch geht es i-wie nicht.. Code:(...) int Mark[3]; for (int i=0; i<3; i++) Mark[i]=-1; Mark[GetFirstEmpty(Mark)] = 12; (...) int GetFirstEmpty(int Arr[]) { for (int i =0; i < sizeof(Arr); i++) if (Arr[i]==-1) return i; return -1; };Irgendwo ist der Wurm drinnen. Findet diesen einer? Wäre sehr dankbar.
3Stein
-
int GetFirstEmpty(int Arr[]) { for (int i =0; i < 3; i++) if (Arr[i]==-1) return i; return -1; };Vorsicht bei sizeof(..).
-
warum?
Alternative?Danke
-
Ergänzung nach Registrierung (endlich):
Geht auch mit dem i<3 nicht
und die Methode soll ja für mehrere Arrays verwendet werden, die teilweise bis Arr[10] gehen...
-
Du musst dir bei Arrays die größe immer selber merken. Deshalb auch der Vorschlag std::vector zu verwenden. Der nimmt dir die Arbeit ab.
-
ok.
finde jedoch bei google kein tutorial mit "vektor"
und ich hab ehrlich-gesagt noch nie davon gehört. Desshalb ging ich nicht auf Fellhuhn's Vorschlag ein...
-
-
danke