Avatar ·

كيفية حذف عنصر من 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`؟ ماذا يحدث إذا كان الفهرس خارج النطاق؟ كيف يتم التعامل مع الأخطاء بشكل صحيح؟ سأكون ممتنًا لشرح مفصل مع أمثلة.