สองทาง
ให้เรากำหนดอาร์เรย์ดั้งเดิมและองค์ประกอบที่จะค้นหาและลบออกจากอาร์เรย์ก่อน -
int ele = 5; int arr = [1,2,3,4];
ตอนนี้เราวนลูปในอาร์เรย์เพื่อค้นหาองค์ประกอบที่กำหนด -
for (i=0; i<length; i++) if (arr[i] == ele) break;
หากพบตำแหน่งองค์ประกอบที่กำหนด เราจะเลื่อนองค์ประกอบไปทางซ้ายซึ่งอยู่ทางขวาไปยังองค์ประกอบที่พบ −
if (i < length) {
length--;
for (int j=i; j<length; j++)
arr[j] = arr[j+1];
} ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อดูการลบองค์ประกอบในอาร์เรย์ในการข้ามผ่านสองครั้ง -
#include<iostream>
using namespace std;
int main() {
int arr[] = {11, 15, 6, 8, 9, 10};
int length = sizeof(arr)/sizeof(arr[0]);
int ele = 6;
int i;
for (i=0; i<length; i++)
if (arr[i] == ele) break;
if (i < length) {
length--;
for (int j=i; j<length; j++)
arr[j] = arr[j+1];
}
cout << "The array after deletion is "<<endl;
for (int i=0; i<length; i++)
cout << arr[i] << " ";
return 0;
} ผลลัพธ์
รหัสข้างต้นจะสร้างผลลัพธ์ต่อไปนี้ -
The array after deletion is 11 15 8 9 10
การเดินทางครั้งเดียว
ให้เรากำหนดอาร์เรย์ดั้งเดิมและองค์ประกอบที่จะค้นหาและลบออกจากอาร์เรย์ก่อน -
int ele = 15; int arr = [11,15,6,8,9,10];
ตอนนี้เราประกาศสองตัวแปรบูลีน พบ ซึ่งระบุว่าจะพบองค์ประกอบหรือไม่และ int pos ซึ่งจะเก็บตำแหน่งองค์ประกอบหากพบ −
bool found=false; int pos=-1;
ต่อไป เราค้นหาอาร์เรย์ และหากพบองค์ประกอบ เราจะเก็บตำแหน่งและเปลี่ยนองค์ประกอบในขณะที่วนรอบในครั้งเดียว
for (int i=0; i<length; i++){
if(pos!=-1){
arr[pos]=arr[pos+1];
j++;
}
else if(arr[i]==ele){
pos=i;
found=true;
}
} ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อดูการลบองค์ประกอบในอาร์เรย์ในการข้ามผ่านเพียงครั้งเดียว -
#include<iostream>
using namespace std;
int main() {
int arr[] = {11, 15, 6, 8, 9, 10};
int length = sizeof(arr)/sizeof(arr[0]);
int ele = 6 ;
bool found=false;
int pos=-1;
for (int i=0; i<length; i++){
if(pos!=-1){
arr[pos]=arr[pos+1];
pos++;
}
else if(arr[i]==ele){
pos=i;
found=true;
}
}
cout << "The array after deletion is "<<endl;
if(found){
length--;
}
for (int i=0; i<length; i++)
cout << arr[i] << " ";
return 0;
} ผลลัพธ์
รหัสข้างต้นจะสร้างผลลัพธ์ต่อไปนี้ -
The array after deletion is 11 15 8 9 10