وظيفة Vector Erase () في C ++

Vector Erase Function C



يتم استخدام المصفوفة لتخزين بيانات متعددة ، ولا يمكن تغيير عدد عناصر المصفوفة في وقت التشغيل. يمكن حل هذه المشكلة باستخدام متجه يعمل كمصفوفة ديناميكية. توجد وظائف مختلفة في فئة المتجه لإضافة عنصر وإزالته من المتجه. تُستخدم وظيفة erase () لإزالة عنصر أو أكثر من المتجه في وقت التشغيل الذي يقلل من حجم المتجه. تم شرح استخدامات هذه الوظيفة في هذا البرنامج التعليمي.

بناء الجملة:

يوجد نوعان من بناء الجملة لهذه الوظيفة أدناه.







مكرر محو(موضع المكرر)؛

تُستخدم وظيفة erase () أعلاه لإزالة عنصر واحد من المتجه ، وتقوم بإرجاع مكرر ، وتشير إلى العنصر الذي يتبعه العنصر الأخير الذي تم مسحه.



مكرر محو(مكرر start_position ، مكرر end_position)؛

تُستخدم وظيفة erase () أعلاه لإزالة عناصر متعددة من المتجه بناءً على الموضع المذكور في الوسيطتين الأولى والثانية لهذه الوظيفة.



المتطلبات المسبقة:

قبل التحقق من أمثلة هذا البرنامج التعليمي ، يجب عليك التحقق من تثبيت برنامج التحويل البرمجي g ++ أم لا في النظام. إذا كنت تستخدم Visual Studio Code ، فقم بتثبيت الملحقات الضرورية لتجميع التعليمات البرمجية المصدر لـ C ++ لإنشاء التعليمات البرمجية القابلة للتنفيذ. هنا ، تم استخدام تطبيق Visual Studio Code لتجميع وتنفيذ كود C ++. الاستخدامات المختلفة لوظيفة erase () لإدراج عنصر (عناصر) في متجه موضحة أدناه.





مثال 1: إزالة عنصر العنصر الأول

قم بإنشاء ملف C ++ بالتعليمة البرمجية التالية لإزالة عنصر من بداية المتجه. تم استخدام متجه لقيم السلسلة في الكود. تمت طباعة قيم المتجه قبل وبعد حذف العنصر الأول من المتجه باستخدام وظيفة erase () بمعامل واحد.

// تضمين المكتبات الضرورية

#يشمل

#يشمل

استخدام مساحة الاسمساعات؛

// عرض قيم المتجه

فارغdisplay_vector(المتجه<سلسلة>الفاكهة)

{

// تهيئة العداد

intعداد= 1؛

// قم بتكرار وطباعة عناصر المتجه باستخدام الحلقة

ل (تلقاءيهو=الفاكهة.يبدأ()؛هو!=الفاكهة.نهاية()؛هو++)

{

// تحقق من أن العناصر هي العنصر الأخير أم لا

لو(عداد!=الفاكهة.بحجم())

كلفة << *هو<< '،'؛

آخر

كلفة << *هو؛

// زيادة العداد بمقدار 1

عداد++؛

}

كلفة <<endl؛

}

intالأساسية(فارغ) {

// قم بتعريف متجه لبيانات السلسلة

المتجه<سلسلة>الفاكهة= { 'البرتقالي'و'موز'و'مانجو'وجاك فروتو'ليتشي' }؛

// اطبع القيم الحالية للمتجه

كلفة << 'قيم المتجه قبل الإزالة:' <<endl؛

display_vector(الفاكهة)؛

// قم بإزالة العنصر الأول من المتجه

الفاكهة.محو(الفاكهة.يبدأ())؛

// اطبع القيم الحالية للمتجه بعد الإزالة

كلفة << 'نقيم المتجه بعد الإزالة: ' <<endl؛

display_vector(الفاكهة)؛

إرجاع 0؛

}

انتاج:

سيظهر الإخراج التالي بعد تنفيذ الكود أعلاه.



مثال 2: إزالة عدة عناصر

قم بإنشاء ملف C ++ مع التعليمات البرمجية التالية لإزالة العناصر المتعددة من المتجه باستخدام وظيفة erase (). تم استخدام متجه لقيم الأعداد الصحيحة في الكود. تم استخدام مكررين هنا لتعيين نطاق العناصر التي تمت إزالتها من المتجه. تم استخدام وظيفة erase () مع معلمتين لإزالة عناصر متعددة من المتجه.

// تضمين المكتبات الضرورية

#يشمل

#يشمل

استخدام مساحة الاسمساعات؛

// عرض المتجه

فارغdisplay_vector(المتجه<int>الأعداد)

{

// اطبع قيم المتجه باستخدام الحلقة

ل(تلقاءيهو=الأعداد.يبدأ()؛هو!=الأعداد.نهاية() ؛هو++)

كلفة << *هو<< '؛

// إضافة سطر جديد

كلفة << 'ن'؛

}

intالأساسية() {

// نعلن عن متجه لبيانات عدد صحيح

المتجه<int>intArray{ 678و435و960و231و800و387و634و267و409و294}؛

// اطبع القيم الحالية للمتجه

كلفة << 'قيم المتجه قبل الإزالة:' <<endl؛

display_vector(intArray)؛

// قم بتعريف مكررين لإزالة نطاق العناصر من المتجه

المتجه<int> :: مكررstartEle ، endEle؛

// اضبط المكرر على الموضع الأول

بداية=intArray.يبدأ()؛

// قم بزيادة مكرر البداية بمقدار 2

تقدم(startEle ،2)؛

// اضبط المكرر على الموضع الأخير

النهاية=intArray.نهاية()؛

// إنقاص مكرر النهاية بمقدار 3

تقدم(endEle ،-3)؛

// قم بإزالة نطاق العناصر

intArray.محو(startEle ، endEle)؛

// اطبع القيم الحالية للمتجه بعد الإزالة

كلفة << 'نقيم المتجه بعد الإزالة: ' <<endl؛

display_vector(intArray)؛

إرجاع 0؛

}

انتاج:

سيظهر الإخراج التالي بعد تنفيذ الكود أعلاه. وفقًا لنطاق التكرارات ، تمت إزالة العناصر من الموضع الثالث إلى الموضع السابع للمتجه.

مثال 3: إزالة العناصر المحددة

قم بإنشاء ملف C ++ مع التعليمات البرمجية التالية لإزالة عناصر معينة من المتجه باستخدام وظيفة erase (). تم التصريح عن متجه من 7 عناصر صحيحة في الكود. بعد ذلك ، استخدمت الحلقة 'for' لتكرار عناصر المتجه وإزالة تلك العناصر من المتجه التي لا تقبل القسمة على 5.

// تضمين المكتبات الضرورية

#يشمل

#يشمل

استخدام مساحة الاسمساعات؛

intالأساسية()

{

// نعلن عن متجه لبيانات عدد صحيح

المتجه<int>أعداد= { 78وأربعة خمسةو67و25و98و75و52 }؛

كلفة << قيم المتجه قبل الإزالة:ن'؛

ل (int مقدار ثابت &أنا:أعداد) {

كلفة <<أنا<< '؛

}

كلفة <<endl؛

// قم بإزالة الأرقام من المتجه التي لا تقبل القسمة على 5

ل (تلقاءيهو=أعداد.يبدأ()؛هو!=أعداد.نهاية()؛هو++)

{

// تحقق من أن الرقم قابل للقسمة على 5 أم لا

لو (*هو٪ 5 != 0)

{

// قم بإزالة العنصر بناءً على المكرر

أعداد.محو(هو-)؛

}

}

كلفة << قيم المتجه بعد الإزالة:ن'؛

ل (int مقدار ثابت &أنا:أعداد) {

كلفة <<أنا<< '؛


}


كلفة <<endl؛


إرجاع 0؛

}

انتاج:

سيظهر الإخراج التالي بعد تنفيذ الكود أعلاه. يوضح الإخراج أن المتجه يحتوي على العناصر القابلة للقسمة على 5 فقط ، وقد تمت إزالة العناصر الأخرى.

استنتاج:

تم عرض استخدامات مختلفة لوظيفة erase () في هذا البرنامج التعليمي لإزالة عناصر المتجه. يحتوي C ++ على العديد من الوظائف الأخرى لإزالة العنصر من المتجه ، ويمكن لهذه الوظائف إزالة العنصر الفردي في وقت واحد. ولكن يمكن إزالة كل من العناصر الفردية والمتعددة من أي موضع للمتجه باستخدام وظيفة vector erase ().