Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ลบองค์ประกอบอาร์เรย์ในช่วงดัชนีที่กำหนด [L – R] ใน C ++ หรือไม่


ให้เรากำหนดอาร์เรย์ดั้งเดิมและช่วงพิเศษสำหรับการลบองค์ประกอบอาร์เรย์ก่อนและค้นหาความยาวอาร์เรย์ดั้งเดิม -

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 ซึ่งจะใช้เพื่อเลื่อนตำแหน่ง (ลบ) ขององค์ประกอบอาร์เรย์เมื่อค่าดัชนี (i) อยู่ระหว่างช่วง L และ 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