Problem

2/8

مكرر في ناقلات

Theory Click to read/hide

التكرارات إحدى الطرق للتكرار على العناصر في الحاويات (هياكل البيانات) هي مكرر ( مكرر ) ، & nbsp؛ والتي تأتي في عدة أنواع.
نبسب ؛
Iterator & nbsp؛ - & nbsp؛ بنية البيانات التي تشير إلى & raquo ؛ في بعض عناصر الحاوية ، ويمكن (بالنسبة لبعض الحاويات) الانتقال إلى العنصر السابق / التالي.
يستخدم المتجه أقوى - & nbsp؛ مكرر الوصول العشوائي ( مكرر الوصول العشوائي ). & nbsp؛ يمكن لمكرر الوصول العشوائي الوصول إلى عنصر تعسفي للمتجه بالإضافة إلى الحركة المتسلسلة.

فوائد التكرارات
1) نبسب ؛ عند حذف العناصر والتكرار فوق العناصر باستخدام المؤشرات ( [] ) ، نحتاج إلى تتبع عدد العناصر المتبقية طوال الوقت حتى لا نتجاوز المتجه ، وباستخدام مكرر ، يمكن استخدام end () للإشارة إلى نهاية المتجه.
2) باستخدام مكرر ، يمكنك بسهولة إزالة العناصر وإدراجها في متجه ديناميكيًا. & nbsp ؛
نبسب ؛
إعلان التكرار 1) إعلان مكرر لمتجه عدد صحيح وتوجيهه إلى عنصر الأول في المتجه. ناقل العلامة & lt ؛ int & GT. myvector = {1، 2، 3، 4، 5} ؛ متجه & lt؛ int & gt؛ :: iterator it = myvector.begin ()؛
2) تعريف & nbsp؛ مكرر لمتجه عدد صحيح وتوجيهه إلى عنصر & nbsp؛ بعد last & nbsp؛ في المتجه. ناقل العلامة & lt ؛ int & GT. myvector = {1، 2، 3، 4، 5} ؛ متجه & lt؛ int & gt؛ :: iterator it = myvector.end ()؛ // يشير إلى العنصر بعد آخر عنصر ، متجه & lt؛ int & gt؛ :: iterator it1 = myvector.end () - 1 ؛ // مشيرا إلى العنصر الأخير. نبسب ؛
الحصول على قيمة وعرضها الحصول على العنصر المشار إليه بواسطة المكرر وعرضه. كوت & lt؛ & lt؛ * ذلك ؛ نبسب ؛
تحريك موضع المكرر حرك موضع المكرر 3 مواضع للأمام. <قبل> تقدم (ذلك ، 3) ؛ نبسب ؛
إنشاء مكرر جديد من مكرر موجود أنشئ مكررًا جديدًا استنادًا إلى واحد موجود ، مع تقدم 3 وظائف. auto it1 = next (it، 3)؛ نبسب ؛
عرض قيم المتجه باستخدام مكرر متجه & lt؛ int & gt؛ :: iterator it؛ لـ (it = myvector.begin () ؛ it! = myvector.end () ؛ ++ هو) { نبسب ؛ cout & lt؛ & lt؛ * it & lt؛ & lt؛ & quot؛ & quot ؛؛ ونبسب ؛}
اجتياز المتجه لاجتياز المتجه من العنصر الأخير إلى الأول ، يتم استخدام مكرر عكسي & nbsp ؛ reverse_iterator ، يتم الحصول عليه بواسطة:
1) rbegin () - & nbsp؛ إرجاع مكرر عكسي يشير إلى العنصر الأخير من المتجه ، يؤدي تطبيق العملية ++ إلى الانتقال إلى العنصر السابق ؛
2) rend () - & nbsp؛ & nbsp؛ إرجاع مكرر عكسي يشير إلى العنصر السابق للمتجه ، يؤدي تطبيق عملية ++ إلى الانتقال & nbsp؛ في اليوم التالي. متجه & lt ؛ int & gt ؛ :: reverse_iterator it = myvector.rbegin () ؛ & نبسب ؛ // يشير إلى العنصر الأخير متجه & lt ؛ int & gt ؛ :: reverse_iterator it = myvector.rend () ؛ نبسب ؛ & nbsp ؛ // يشير إلى عنصر ، نبسب ؛ // الذي يأتي قبل الأول ،

Problem

تحصل على سلسلة من الأعداد الصحيحة. & nbsp؛ اكتب برنامجًا يعكس المتجه باستخدام & nbsp؛ reverse_iterator .

إدخال
الرقم المعطى الأول N - عدد العناصر في التسلسل (1 & lt؛ = N & lt؛ = 100). ثم يتم كتابة أرقام N مفصولة بمسافة.
& nbsp؛
الإخراج
أخرج جميع عناصر المتجه الناتج في سطر واحد ، وفصل بينها بمسافات.
نبسب ؛
مثال <الجسم>
# إدخال الإخراج
1 5
1 2 3 4 5
5 4 3 2 1