في Map C ++

Fy Map C



توفر لنا مكتبة C ++ STL فئة الخريطة. تعتبر الخرائط حاويات ارتباطية تحتفظ بالأشياء في زوج من القيم الأساسية المرتبة والقيم المعينة. لا يمكن أبدًا وجود قيمتين معينتين بنفس قيمة المفتاح. توفر فئة الخريطة العديد من الوظائف ولكن هنا سنناقش map.at () وظيفة. يتم تمرير العنصر المعين إلى قيمة المفتاح كمعامل للدالة يشار إليه باستخدام map.at () وظيفة. عندما نحاول الوصول إلى عنصر ليس داخل نطاق الحاوية ، فإن map.at () تقوم الدالة بتقييم نطاق الحاوية وتلقي استثناءً.

تركيب الدالة map.at ()

نحتاج إلى اتباع بناء الجملة أدناه لتنفيذ وظيفة map.at () في C ++.







Map_variable.at ( مفتاح / زوج القيمة )



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



مثال 1: استخدام دالة map.at ()

يتم تنفيذ البرنامج لتوضيح وظيفة map.at. لقد ربطنا في() تعمل مع خريطة() دالة تأخذ بعض قيم الإدخال وتوضح وظائفها. لهذا ، قمنا بملء قسم رأس البرنامج عن طريق استيراد وحدة الخريطة مع وحدة أخرى مطلوبة لـ c ++. ثم قمنا باستدعاء رئيسي() وظيفة لإعلان الخريطة من فئة الخريطة. تم تسمية كائن الخريطة باسم 'MyMap'. نقوم بإنشاء قائمة الخرائط من خلال إعطاء مفتاح الخريطة والقيمة.





بعد ذلك ، استدعينا map.at () الوظيفة التي تعين السلسلة المحددة إلى عدد صحيح. ثم قمنا بطباعة النتائج من ملف map.at () وظيفة من الحلقة for. تستخدم حلقة for مرجع الكلمة الرئيسية 'تلقائي'. تشير الكلمة الأساسية التلقائية إلى أن المُهيئ سيزيل تلقائيًا نوع المتغير من المتغير المعلن. سيطبع بيان cout الأزواج بالترتيب الذي تم إرجاعه من ملف map.at () وظيفة.

# تضمين

# تضمين <سلسلة>

# تضمين <خريطة>


انت مين ( )

الأمراض المنقولة جنسيا:: الخريطة < الأمراض المنقولة جنسيا :: سلسلة ، كثافة العمليات > MyMap = {

{ 'تفاح'، 0 } و

{ 'العنب' و 0 } و

{ 'المانجو' و 0 } }

MyMap.at ( 'تفاح' ) = 5 ؛

MyMap.at ( 'العنب' ) = 10 ؛

MyMap.at ( 'المانجو' ) = 6 ؛

إلى عن على ( تلقاءي & م: MyMap ) {

الأمراض المنقولة جنسيا :: cout << م أولا << ':' << م الثانية << '\ن' ؛ }

< قوي > إرجاع 0 ؛

}



الآن ، لدينا النتائج من البرنامج أعلاه الذي يقوم بتنفيذ map.at () وظيفة. يتم عرض جميع الأعداد الصحيحة المحددة الموجودة في النطاق مقابل كل سلسلة.

مثال 2: استخدام الدالة map.at () لاستثناء out_of_range

لقد ناقشنا من خلال برنامج مثال استخدام map.at تعمل في C ++. الآن ، قمنا بتنفيذ آخر map.at في برنامج. ولكن هذه المرة ستعيد القيمة التي يتم تقديمها داخل الخريطة وكذلك الاستثناء out_of_range عندما لا يتم تحديد المفتاح. كما يتعين علينا استخدام map.at وظيفة ، لذلك قمنا بإضافة وحدة الخريطة في الرأس. بعد ذلك ، حددنا الوظيفة الرئيسية حيث يتم تمرير 'الفراغ' كمعامل.

داخل الوظيفة الرئيسية ، قمنا بتهيئة مُنشئ القائمة عن طريق إنشاء كائن الخريطة كـ 'm1'. تحتوي قائمة الخريطة على سلاسل مختلفة من المفاتيح وقيم الأعداد الصحيحة مقابلها. ثم قمنا بطباعة المفتاح 'i' بتمريره عبر ملف map.at وظيفة. لقد استخدمنا كتلة try-catch. في كتلة try ، قدمنا ​​مفتاح عدم الوجود في ملف map.at وظيفة. نظرًا لأن المفتاح خارج النطاق ، فإن كتلة المحاولة ستلقي بالخطأ.

# تضمين

# تضمين <خريطة>

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

انت مين ( فارغ ) {


خريطة < شار ، كثافة العمليات > م 1 = {

{ 'l' و 1 } و

{ 'أنا' و اثنين } و

{ 'ن' و 3 } و

{ 'في' و 4 } و

{ 'x' و 5 } و

} ؛



كوت << 'قيمة مفتاح الخريطة m1 ['i'] =' << m1.at ( 'أنا' ) << نهاية.



محاولة {

m1.at ( 'نعم' ) ؛

} قبض على ( خارج_من_النطاق & و ) {

سير << 'خطأ عند' << ه. ماذا ( ) << نهاية.

}



إرجاع 0 ؛

}

يمكننا أن نتخيل من لقطة الشاشة الناتجة أن ملف map.at () تقوم الدالة بإرجاع المفاتيح الموجودة في الخريطة فقط. ترمي المفاتيح خارج النطاق الخطأ حيث يتم عرض الخطأ عندما مررنا المفتاح 'y' في ملف map.at وظيفة.

مثال 3: استخدام الدالة map.at () للوصول إلى العناصر

يمكن الوصول إلى عنصر باستخدام العنصر المحدد من الأرقام من وظيفة map.at. دعونا ننفذ هذا البرنامج لإنجاز البيان أعلاه. لقد حددنا وحدة الخريطة أولاً في قسم الرأس حيث إنها مطلوبة للوصول إلى ملف map.at وظيفة. بعد ذلك ، لدينا الوظيفة الرئيسية حيث قامت فئة الخريطة بتهيئة كائن الخريطة باسم 'Map'. باستخدام كائن 'الخريطة' هذا ، أنشأنا مفاتيح السلاسل وحددنا قيمة الرقم لها. بعد ذلك ، اتصلنا بـ map.at دالة مع عبارة cout وتمرير مفتاح 'مثال' كمدخل.

# تضمين

# تضمين <خريطة>

# تضمين <سلسلة>

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

انت مين ( )

{

خريطة < سلسلة ، كثافة العمليات > خريطة؛

خريطة [ 'لي' ] = 1 ؛

خريطة [ 'سي ++' ] = اثنين ؛

خريطة [ 'خريطة' ] = 3 ؛

خريطة [ 'مثال' ] = 4 ؛

كوت << Map.at ( 'مثال' ) ؛

إرجاع 0 ؛

}

يتم إرجاع عنصر الرقم مقابل المفتاح المحدد في ملف map.at وظيفة. تعطي النتيجة القيمة '4' حيث يتم تخصيص هذا الرقم للعنصر الأساسي 'مثال' للخريطة.

مثال 4: استخدام دالة map.at () لتعديل العناصر

لنفكر في مثال بسيط لتعديل القيمة المرتبطة بالقيمة الرئيسية. لقد أنشأنا قائمة الخريطة عن طريق استدعاء فئة الخريطة وإنشاء الكائن 'M1'. لقد قمنا بتعيين قيمة السلسلة مقابل كل مفتاح في الخريطة. بعد ذلك ، يتعين علينا استخدام ملف map.at وظيفة. في ال map.at وظيفة ، لقد استخدمنا المفاتيح المحددة وقمنا بتعيين قيم السلسلة الجديدة مقابل تلك المفاتيح. الآن ، سيتم تعديل هذه القيم مع السابقة. بمساعدة حلقة for ، قمنا بتكرار كل عنصر من الخريطة وعرضناه كمخرج.

# تضمين

# تضمين <سلسلة>

# تضمين <خريطة>


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


انت مين ( )

{

خريطة < int ، سلسلة > م 1 = {

{ 10 و 'سي ++' } و

{ عشرين و 'جافا' } و

{ 30 و 'الثعبان' } و

{ 40 و 'csharp' } و

{ خمسون و 'افتح' } } ؛




M1.at ( عشرين ) = 'Tensorflow' ؛

M1.at ( 30 ) = 'Linux' ؛

M1.at ( خمسون ) = 'سكالا' ؛

كوت << ' عناصر:' << نهاية.

إلى عن على ( تلقاءي & س: M1 ) {

كوت << العاشر أولا << ':' << x.second << '\ن' ؛

}


إرجاع 0 ؛

}

لاحظ أن القيم التي تم الحصول عليها كمخرجات قد عدلت قيم السلسلة المعينة حديثًا في map.at وظيفة. يتم عرض القيم المحدثة في اللقطة أدناه.

استنتاج

المقالة حول وظيفة map.at. لقد وفرنا وظيفة الوظيفة map.at () من خلال تركيبها والمثال يتم تنفيذه باستخدام مترجم C ++. تعد وظيفة map.at () مفيدة للغاية لأنها تتيح إمكانية الوصول إلى العنصر وتعيد استثناءًا أو خطأً واضحًا يصف الموقف الذي نشأ عند استدعاء الطريقة. علاوة على ذلك ، يمكننا تعيين قيم جديدة مقابل مفتاح الوجود من خلال وظيفة map.at.