كيفية فرز المتجهات باستخدام الدالة lexicographical_compare () C ++

Kyfyt Frz Almtjhat Bastkhdam Aldalt Lexicographical Compare C



الوظيفة عبارة عن مجموعة من التعليمات التي تؤدي مهمة محددة. يتم استخدامه لجعل التعليمات البرمجية منظمة وقابلة لإعادة الاستخدام. في C ++ ، تلعب الوظائف دورًا مهمًا في جعل الكود بسيطًا. على سبيل المثال ، ' المعجم_المعجم () 'الدالة لمقارنة تسلسلتين أو نطاقات معجمية.

في هذا الدليل الشامل ، سوف نعرض وظيفة 'lexicographical_compare ()' في C ++ مع البرنامج.

ما هي وظيفة 'lexicographical_compare ()' في لغة ++ C

في لغة C ++ ، تعتبر وظيفة 'lexicograpfical_compare ()' عملية فعالة للغاية لمقارنة العناصر وفرزها في تسلسل (ترتيب معجمي). يوفر وسيلة لتحديد الترتيب المعني الذي ينتج عن مقارنة التسلسلات ، مثل النطاقات والسلاسل. يمكن الوصول إلى هذه الوظيفة في C ++ باستخدام ' <الخوارزمية> ' الملف الاساسي.







بناء الجملة



فيما يلي بناء جملة الوظيفة 'lexicographical_compare ()' في C ++:



نموذج < فصل المدخلات 1 ، فصل المدخلات 2 >
منطقي lexicographical_compare ( InputIter1 first1، InputIter1 last1، InputIter2 first2، InputIter2 last2 ) ؛

وفقًا للرمز المذكور أعلاه ، فإن ' المعجم_المعجم () 'الدالة على زوجين من النطاقات' أولا 1 ' و ' مشاركة 1 'مكررات الإدخال للنطاق الأول و' أولا 2 ' و ' last2 'مكررات الإدخال للنطاق الثاني. إنها تطابق كلا من عناصر النطاق بترتيب معجمي.





نوع الإرجاع: تقوم بإرجاع القيمة المنطقية (صواب أو خطأ). سيعود صحيحًا عندما يكون النطاق الأول أصغر من الناحية المعجمية من النطاق الثاني ، وإلا فإنه يُرجع خطأ.

استثناءات: إذا تم العثور على خطأ أثناء المقارنة ، فسيتم طرح استثناء.



كيفية فرز المتجهات باستخدام الدالة lexicographical_compare () C ++

تُستخدم وظيفة 'lexicographical_compare ()' بشكل متكرر في تقنيات الفرز لمعرفة ترتيب العنصر. يتطابق مع ترتيب كل عنصر من العناصر حتى يتم الانتهاء من النطاق.

مثال على lexicograpical_compare () وظيفة فرز ومقارنة متجهات السلاسل

دعنا نتحقق من المثال المقدم الذي يوضح ' نوع() 'مع' المعجم_المعجم () ':

# تضمين
# تضمين <ناقل>
# تضمين <الخوارزمية>
استخدام مساحة الاسم الأمراض المنقولة جنسيا ؛

هنا:

  • ' 'لعمليات الإدخال والإخراج.

' <ناقل> 'عبارة عن فئة حاوية مكتبة قياسية بلغة C ++ وتستخدم للاحتفاظ بالقوالب التي توفر إمكانات مصفوفة ديناميكية.

  • ' <الخوارزمية> 'header file' للوصول إلى الأسلوب 'sort ()' لوظيفة 'lexicographical_compare ()'.
  • ' استخدام اسم للمحطة يُشار إلى 'على أنه توجيه يستخدم جميع الأسماء من مساحة الاسم دون الإشارة صراحة إلى البادئة' std '.

بعد ذلك ، داخل ' رئيسي() '، قمنا بتهيئة متجهين' vect1 ' و ' vect2 'بنفس السلسلة. بعد ذلك ، استخدم ' نوع() 'طريقة لفرز العناصر بترتيب معجمي لكلا المتجهين باستخدام' vect1.begin () ' و ' vector1.end () نطاق التكرارات لـ 'vect1' و ' vect2.begin () ' و ' vect2.end () نطاق 'vect2'. ثم استدعاء ' المعجم_المعجم () 'التي تأخذ أربع حجج لكلا المتجهين.

سيتم حفظ النتائج مع ' منطقي 'اكتب في' نتيجة 'متغير وإرجاع صحيح إذا كان النطاق' vect1 'أصغر من الناحية المعجمية من نطاق' vect2 '، وخطأ في الحالات الأخرى. أخيرًا ، قم بتطبيق ' لو 'بيان لعرض النتائج. إذا كان ' نتيجة 'صحيح فهذا يعني أن' vect1 'معجم' > 'من' vect2 '. خلاف ذلك ، سيتم تنفيذ الشرط الآخر:

int رئيسي ( ) {
المتجه < خيط > vect1 = { 'ربيع' و 'صيف' و 'خريف' و 'شتاء' } ؛
المتجه < خيط > vect2 = { 'ربيع' و 'صيف' } ؛

نوع ( vect1. يبدأ ( ) ، vect1. نهاية ( ) ) ؛
نوع ( vect2. يبدأ ( ) ، vect2. نهاية ( ) ) ؛
// قارن كلا المتجهين باستخدام lexicographical_compare ()
منطقي نتيجة = lexicographical_compare (
vect1. يبدأ ( ) ، vect1. نهاية ( ) و
vect2. يبدأ ( ) ، vect2. نهاية ( )
) ؛

لو ( نتيجة ) {
كوت << 'vect1 أكبر من الناحية المعجمية من vect2' << إندل ؛
} آخر لو ( lexicographical_compare (
vect2. يبدأ ( ) ، vect2. نهاية ( ) و
vect1. يبدأ ( ) ، vect1. نهاية ( )
) ) {
كوت << 'vect1 أقل من vect2 من الناحية المعجمية' << إندل ؛
} آخر {
كوت << 'vect1 يساوي vect2 من الناحية المعجمية' << إندل ؛
}
يعود 0 ؛
}

انتاج |

هذا كل شئ! لقد تعلمت عن ' المعجم_المعجم () ”في C ++.

خاتمة

في لغة ++ C ، تُستخدم وظيفة 'lexicographical_compare ()' لفرز ومطابقة تسلسل العناصر بترتيب معجمي. يتم تطبيق خوارزمية الفرز باستخدام طريقة 'lexicograpgical_compare ()' على نطاق واسع للعثور على الترتيب النسبي. في هذا البرنامج التعليمي ، أوضحنا وظيفة 'lexicographical_compare ()' في C ++.