Zwei Arrays zu einem Array zusammenfügen
-
dann danke ich erst ma soweit ich denke das ich damit was anfangen kann
gruß patrick
-
Ich hab da nur noch eine Frage ...
int l3 = l1+l2;
diese Zeile verstehe ich ja mal garnicht
... sry ist fürs studium bin eigendlich java Programmierer -.-
-
tummi schrieb:
int l3 = l1+l2;
In C++ haben Arrays eine feste Länge, bei statischen Arrays wird die zur Compilezeit festgelegt, bei dynamischen wird sie beim Anfordern des Speichers mittels new[] festgelegt. Wenn du zwei Arrays der Längen length1 und length2 in ein drittes kopieren willst, muss das dritte Array (mindestens) die Länge length1+length2 haben. deshalb length3 = length1+length2.
/edit: ich seh grad das Problem... l(L) und 1(eins)... ich ändere das mal.
-
aahhhh ok das mit der 1 und dem L war glaub ich mein problem ... danke dir vielmasls für die schnelle antwort
gruß
-
pumuckl schrieb:
leichteste Lösung...
Ich persönlich würde da ja std::merge bevorzugen, weil der genau das macht, was vom OP erwartet wird.
(Und zufälligerweise auch so heisst..)
-
drakon schrieb:
weil der genau das macht, was vom OP erwartet wird.
Tut er nicht. Der OP hat ausdrücklich gesagt dass er die Arrays aneinanderflanschen will, nicht dass das neue Array automatisch sortiert werden soll, in seinem Beispiel stand ja auch 1,2,3,1,2,3,4. std::merge sorgt aber für eine Sortierung, das Ergebnis wäre 1,1,2,2,3,3,4
-
tummi schrieb:
also ich hab zwei integer Arrays in dem einen steht z.B. 1,2,3 und im zweiten steht 1,2,3,4 so nun will ich die so zusammenfügen das in eine weiteres Array die zahlen 1,2,3,1,2,3,4.
www.cplusplus.com schrieb:
mergeCombines the elements in the sorted ranges
[first1,last1)
and[first2,last2)
, into a new range beginning at result with its elements sorted. The comparison for sorting uses eitheroperator<
for the first version, orcomp
for the second.@drakon:
Ich glaub nicht, dass er die sortiert will, sondern einfach nur zusammenfügen.- Edit: Argh, viel zu spät
Man könnte
std::vector::insert()
benutzen, dann kann man am Ende anderestd::vector
s einfügen.
-
Wo sagt er ausdrücklich, dass er die nicht sortiert haben will?
OK. Er hats im Beispiel, aber das muss ja nicht unbedingt gleich heissen, dass es auch so sortiert sein soll. (das kann durch das einfache copy/paste gerade das offensichtlichste Beispiel sein..).
-
Ich denke, wenn er nichts von sortieren erwähnt, kann davon ausgegangen werden, dass er einfaches Zusammenfügen meint - gerade wenn das durch sein Beispiel noch bestätigt wird.
-
also ich wollt wirklich das es dannn so aussieht wie in meinem Beispiel. Hat dann ja auch geklappt mit der copy funktion, vielen dank nochmal.
Mit dem Vector, war ich auch schon drauf gekommen, aber anscheinend sollen wir in der übung wohl arrays benutzen, da unser Profesor schon ein Teil des Codes vorgeschrieben hatte.