Sagen wir, ich habe ein Array wie folgt aus:Split ein Array auf einem bestimmten Wert C++
int arr [9] = {2,1,5,8,9,4,10,15,20}
Wie können Sie teilen das Array bei einem bestimmten Wert? Also sagen wir int 8
ist unser Splitting-Wert, das Endergebnis wären zwei separate Arrays (oder ein 2D-Array, wenn Sie dem einen Schuss geben wollen), die in diesem Beispiel arr1 [4] = {1,2,4,5}
und arr2 [5] = {8,9,10,15,20}
wären. arr1
speichert alle Werte in arr
, die unter 8
sind und und arr2
speichert alle Werte in arr
, die 8
und höher sind.
Ich konnte nicht genügend Dokumentation oder Beispiele dafür finden und ich denke, Array Manipulation und Aufteilung ist es wert, Beispiele zu haben.
Array-Größen sind Kompilierzeitkonstante. Sie können dies nicht zur Laufzeit ausführen, da es unmöglich ist, die Größe der resultierenden Arrays zur Kompilierzeit zu kennen. Dies kann nur mit dynamischen Zuordnungen ('new int [x]'), mit dynamischen Containern (wie 'std :: vector') oder wenn Ihr Array ein konstanter Ausdruck ist, durchgeführt werden. In jedem Fall können Sie ein Array nicht "verkleinern". Sie werden mit 'arr' mit einer Größe von 9 'int's verlassen. –
Tricky mit einem Array. Sie teilen sich nicht auf. Sie müssen zwei neue Arrays der richtigen Größe erstellen und das Original auf das neue kopieren. Wenn Sie sich nicht darum kümmern, können Sie das ursprüngliche Array intakt lassen und Indizes oder Zeiger an den Anfang und das Ende weitergeben und es einfach in zwei separaten Arrays anzeigen. – user4581301
Wahrscheinlich, indem Sie ein neues Array erstellen und dann den Schwellenwert suchen. Alle Elemente nach dem Schwellenwert werden * in das neue Array kopiert. –