说我有一个这样的数组的数组:分割在一个特定的值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
可能通过创建一个新数组,然后查找阈值。阈值后的所有项目都*复制到新阵列。 –