說我有一個這樣的數組的數組:分割在一個特定的值C++
int arr [9] = {2,1,5,8,9,4,10,15,20}
你怎麼能在一定值閾值分割陣列?所以說int 8
是我們的分割值,最終結果將是兩個單獨的數組(如果你想給出一個鏡頭,則是一個2d數組),在這個例子中將是arr1 [4] = {1,2,4,5}
和arr2 [5] = {8,9,10,15,20}
。 arr1
存儲arr
中低於8
的所有值,而arr2
存儲arr
中所有值爲8
及以上的值。
我一直無法找到足夠的文檔或這個正在做的例子,我認爲數組操作和分割值得有例子。
數組大小是編譯時常量。你不能在運行時這樣做,因爲在編譯時不可能知道結果數組的大小。這隻能使用動態分配('new int [x]'),使用動態容器(如'std :: vector'),或者如果你的數組是一個常量表達式。無論如何,你不能「收縮」一個數組。你會留下'arr',大小爲9'int's。 –
棘手的數組。他們不分裂。您將不得不創建兩個正確尺寸的新陣列,並將原始文件複製到新文件中。如果你不太在乎,可以保持原始數組完整無缺,並將索引或指針傳遞給開始和結束,並簡單地將它顯示爲兩個單獨的數組。 – user4581301
可能通過創建一個新數組,然後查找閾值。閾值後的所有項目都*複製到新陣列。 –