nth_element هي وظيفة تسمح لك بالعثور على العنصر n في المصفوفة بترتيب مرتب في الوقت الخطي.
تأخذ الوظيفة الطرف الأيسر من المصفوفة ، ومكررًا إلى الموضع الذي سيتم العثور على قيمته بالترتيب الفرز ، والنهاية اليمنى للمصفوفة.
بعد تطبيق الوظيفة ، سيتم تحديد القيمة المطلوبة في المكان الذي يشير إليه المكرر ، بينما تحصل القيم المتبقية على ترتيب فوضوي ، ولكن على يسار الرقم n ، لن تكون هناك قيم أكثر من ذلك ، و إلى اليمين لا أقل. بمعنى ، يجب أن نفهم أن هذه الوظيفة تدمر الترتيب الأصلي للعناصر.
يمكنك قراءة المزيد في الوثائق (https://www.cplusplus.com/reference/algorithm/nth_element/).
مثال:
المتجه a = {4 ، 0 ، 3 ، 9 ، 2 ، 1 ، 8 ، 5 ، 6 ، 7} ؛
// ابحث عن عنصر في الفهرس 4
// انتبه لترتيب الحجج
nth_element (a.begin ()، a.begin () + 4، a.end ()) ؛
// a = [# ، # ، # ، # ، 4 ، $ ، $ ، $ ، $ ، $]
// حيث # & lt ؛ = 4 و 4 & lt ؛ = $
نبسب ؛