كيفية إزالة العناصر من الحاوية هي سؤال شائع في C ++ ، حتى تتمكن من كسب بعض النقاط ، إذا قرأت هذه الصفحة بعناية. إن عبارة idase – remove هي تقنية C ++ للقضاء على العناصر التي تستوفي معيارًا معينًا من الحاوية. Heverever ، من الممكن إزالة العناصر ذات العروق التقليدية المكتوبة يدويًا ، إلا أن عبارة idase – remove لها مزايا عديدة.
كما ترون ، يتطلب التعليمة البرمجية ذات حلقة مكتوبة يدويًا كتابة أكثر قليلاً ، ولكن لها أيضًا مشكلة في الأداء. يجب أن تقوم كل مكالمة `erase` بتحويل جميع العناصر بعد المحذوفة ، لتجنب "الفجوات" في المجموعة. داعيا `erase` عدة مرات على نفس الحاوية يولد الكثير من النفقات العامة من تحريك العناصر.
ومن ناحية أخرى ، فإن الشفرة التي تحتوي على المصطلح "إزالة - إزالة" ليست فقط أكثر تعبيرا ، ولكنها أيضا أكثر كفاءة. أولاً ، يمكنك استخدام `remove_if/remove` لنقل جميع العناصر التي لا تلائم معايير الإزالة إلى مقدمة النطاق ، مع الاحتفاظ بالترتيب النسبي للعناصر. لذلك ، بعد استدعاء `remove_if/remove` ، `remove_if/remove` مكالمة واحدة من `erase` جميع العناصر المتبقية في نهاية النطاق.