چطور می شه یه عضو از ارایه رو حذف کرد؟
با دیلیت یا دستور خاصی داره؟
چطور می شه یه عضو از ارایه رو حذف کرد؟
با دیلیت یا دستور خاصی داره؟
باید مقادیر بعدی آرایه رو یه عنصر به چپ شیفت بدید. نمیشه یه عنضر از آرایه رو به معنی فیزیکی از حافظه حذف کرد. باید مقدارش رو با جابجا کردن عناصر بعدی پاک کنید.
شیفت عناصر رو هم با دستور انتساب میتونید انجام بدی
delete دقیقا معدل new هست . شما هر چند تا که new استفاده کردی باید دقیقا همون قدر delete استفاده کنی .
اگه منظورت ابنه که ارایت اشاره گره که با همون دیلیت یکی رو پاک می کنی خب .
int* pintArrays[8];
pintArrays[0] = new int(123);
delete pintArrays[0];
بقیه رو هم که دوستان گفتن.
آخرین ویرایش به وسیله H_G_G_I : دوشنبه 13 آذر 1391 در 19:41 عصر
فرض کن شما یه آرایه 5 عضوی داری و میخوای عضو 2 این آرایه رو حذف کنی میتونی با روش زیر این کارو انجام بدی
int i;
for (i = 1 ; i <5 ; i++)
a[i] = a[i+1];
a[i] = NULL;
توی C از ()memmove استفاده کنید.
size_t arrSize = 5;
int arr[5] = {1, 2, 3, 4, 5};
// حذف عنصر سوم
memmove(arr + 2, arr + 3, (arrSize - 3) * sizeof(int));
arrSize--;
و توی C++ بهتر بجای آرایه از std::vector استفاده کنید.
std::vector<int> arr;
//حذف عنصر سوم
arr.erase(arr.begin() + 2);
برای اطلاعات بیشتر این پست را مطالعه کنید.
آخرین ویرایش به وسیله مصطفی ساتکی : دوشنبه 11 فروردین 1393 در 14:04 عصر
مثلاً یه آرایه داریم که 64 تا عضو ( که به صورت اسم هستن) داره. حالا می خوایم 32 تا از این 16 آرایه رو با انتخالب کار بر حذف کنیم. باید چه طری این کارو کرد؟
مثال:
مریم
زهرا
حسین
علی
شروین
صابر
میگن بین مریم و زهرا یکی زو انتخاب کنید.
بعد بین حسین علی و........
در مرحله ی دوم فرضاً مریم امتخاب شد علی... حالا باز بین اینا ( به انتخاب کاربر) یکی رو انتخاب کنید. در اصل یه کاربر حذف میشه!
خب برنامشو چه جوری باید نوشت؟
اگر کاربر هست، و هرکودوم اطلاعاتی به غیر از اسم دارن، که بهتره همشون یک جا باشن، \یشنهاد میکنم به جای استفاده از آرایه، از لیست های پیوندی استفاده کنید.
کد شما، یک عنصر از آرایه رو حذف نمی کنه، بلکه شما آرایه ای از اشاره گر ها ساختید(می شه گفت یک آرایه دو بعدی ساختید!) و با دستور delete یکی از همین آرایه های کامل حذف می شه، نه یک عضو خاص از یک آرایه!!
به نظزم بهترین روش، همون روش هایی که گفته شد، یعنی حذف با جابه جا کردن عناصر و استفاده از وکتور
به جای آرایه از آرایه نوع لیست استفاده میکنیم . در این نوع آرایه اعضا به راحتی حذف میشن ( arraylist)
ArrayList a = new ArrayList();
این کد ها برای حذف یه ارایه رشته ای در یه ارایه رشته ای دیگس اگه یه مقدارم بدی بهش قبول میکنه فقط با کمی تغییر میتونی اعداد صحیح تبدیلش کنی
public static void main(String[] args)
{
String numberarr[]= {"3","1","2"};
String numberarr1[]= {"5","5","3","1","2"};
for(String a:(cutinArr(numberarr1,numberarr)))
{
System.out.println(a);
}
}
public static int isPosition(String arr[], String Pos)
{
for(int i= 0; i< arr.length ; i++)
if(arr[i] == Pos)
return i;
return -1;
}
public static String[] cutinArr(String arr[], String Str[])
{
int len = arr.length-1,count=0;
for(String item:Str)
if(isPosition(arr,item)!= -1)
{
arr[isPosition(arr,item)] = arr[len];
arr[len] =null;
len--;
count++;
}
String arrTemp[] = new String[arr.length-count];
for(int i= 0; i<arrTemp.length;i++)
{
arrTemp[i] = arr[i];
}
return arrTemp;
}