먼저 원래 배열과 배열 요소의 삭제를 위한 배타적 범위를 정의하고 원래 배열 길이도 구해 보겠습니다 -
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보다 크면 인덱스 값(i)이 범위 L과 범위 사이에 있으면 배열 요소의 위치를 이동(삭제)하는 데 사용할 변수 k를 증가시킵니다. R. 또한 주어진 배열의 새로운 길이는 k가 됩니다.
int k = 0; for (int i = 0; i < length; i++) { if (i <= L || i >= R) { arr[k] = arr[i]; k++; } }
예시
주어진 인덱스에서 배열 요소를 삭제하는 방법을 더 잘 이해하기 위해 다음 구현을 살펴보겠습니다.
#include <iostream> using 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