این کار چند راه داره
راه اول استفاده از list ه. من نمیدونم آردویینو بطور کامل از توابع C++ استفاده میکنه یا نه. ولی اگر بکنه با این میشه :
list یه کلاسه که مثل آرایه ها، این امکان رو میده که یه لیست درست کنیم و هر عنصری میخوایم توش بذاریم. برعکس آرایه که نمیشه یه عضو رو حذف کرد، تو لیست میشه یه عضو رو چه بر اساس مقدارش یا چه بر اساس جاش توی لیست حذف کرد و لیست بصورت خودکار تغییر سایز میده.
کد:
std::list<int> mylist = {5,10,15,20};
std::cout << "mylist contains:";
for (auto it = mylist.cbegin(); it != mylist.cend(); ++it)
کد مربوط به عملیات رندوم روی عنصر شماره it از لیستی به نام mylist
حذف مورد it
این یه کد نمونه هست. تو حلقه ی for ، بجای اینکه مشخص کنیم دقیقا 10 بار تکرار میشه، با کمک auto(بصورت اتوماتیک نوع متغییر رو انتخاب میکنه) بهش میگیم که از ابتدای لیست (list.cbegin) تا انتهای لیست (list.cend) اسکن کنه
بعد با حذف کردن اون عنصر از لیست با کمک mylist.remove(مقدار عنصری که میخوایم حذفش کنیم. مثلا it یا مثلا 11)
لیست بصورت خودکار تغییر سایز پیدا میکنه و تمام.
البته قبل از کار باید یه پشتیبان از لیست تهیه بکنیم که برای بارهای بعد مقدار لیست رو داشته باشیم.
مقدار دادن به لیست دقیقا مث مقدار دادن به آرایه س
list - C++ Reference