كيفية حذف عنصر من std::vector بواسطة الفهرس في C++؟
مرحبًا أيها الزملاء! أنا مبتدئ في لغة C++ وقد واجهت مشكلة أثناء العمل مع std::vector. أحتاج إلى حذف عنصر بواسطة فهرسه، لكنني لا أستطيع إيجاد الطريقة الصحيحة.
إليك الكود الخاص بي:
```cpp
#include
#include
int main() {
std::vector numbers = {10, 20, 30, 40, 50};
int index_to_remove = 2; // أريد حذف العنصر 30
// أحاول استخدام erase، لكنني لا أعرف كيفية تمرير الفهرس
// numbers.erase(index_to_remove); // خطأ في الترجمة
// أحاول عبر iterator
numbers.erase(numbers.begin() + index_to_remove);
for (int n : numbers) {
std::cout << n << " ";
}
// أتوقع: 10 20 40 50، لكن الكود يتعطل أو يتصرف بشكل غريب
return 0;
}
```
لقد قرأت التوثيق، لكنني ما زلت مرتبكًا. لماذا لا يقبل `erase` مجرد رقم؟ وهل يجب دائمًا استخدام `begin() + index`؟ ماذا يحدث إذا كان الفهرس خارج النطاق؟ كيف يتم التعامل مع الأخطاء بشكل صحيح؟ سأكون ممتنًا لشرح مفصل مع أمثلة.