在 C++ 中删除给定索引范围 [L – R] 中的数组元素?
让我们首先定义原始数组和删除数组元素的唯一范围,并找到原始数组长度-
int arr[] = { 2,4,6,8,10,12,14,16,18,20}; int L = 2, R = 6; int length = sizeof(arr) / sizeof(arr[0]);
现在我们在数组中循环,如果索引位置(i)大于L或R,我们增加变量k,positions(delete)一旦索引值(i)位于范围L和R之间,该变量将用于移动数组元素。此外,给定数组的新长度将为k。
int k = 0; for (int i = 0; i < length; i++) { if (i <= L || i >= R) { arr[k] = arr[i]; k++; } }
例子
让我们看看下面的实现,以更好地理解删除给定索引中的数组元素
#includeusing namespace std; int main() { int arr[] = { 2,4,6,8,10,12,14,16,18,20}; int L = 2, R = 6; int length = sizeof(arr) / sizeof(arr[0]); int k = 0; for (int i = 0; i < length; i++) { if (i <= L || i >= R) { arr[k] = arr[i]; k++; } } length=k; for (int i = 0; i < length; i++) cout << arr[i] << " "; return 0; }
输出
上面的代码将产生以下输出-
2 4 6 14 16 18 20