مكرر code>) ، & nbsp؛ والتي تأتي في عدة أنواع. نبسب ؛ Iterator & nbsp؛ - & nbsp؛ بنية البيانات التي تشير إلى & raquo ؛ في بعض عناصر الحاوية ، ويمكن (بالنسبة لبعض الحاويات) الانتقال إلى العنصر السابق / التالي. div> يستخدم المتجه أقوى - & nbsp؛ مكرر الوصول العشوائي ( مكرر الوصول العشوائي code>). & nbsp؛ يمكن لمكرر الوصول العشوائي الوصول إلى عنصر تعسفي للمتجه بالإضافة إلى الحركة المتسلسلة. فوائد التكرارات strong> 1) نبسب ؛ عند حذف العناصر والتكرار فوق العناصر باستخدام المؤشرات ( [] ) ، نحتاج إلى تتبع عدد العناصر المتبقية طوال الوقت حتى لا نتجاوز المتجه ، وباستخدام مكرر ، يمكن استخدام end () code> للإشارة إلى نهاية المتجه. 2) باستخدام مكرر ، يمكنك بسهولة إزالة العناصر وإدراجها في متجه ديناميكيًا. & nbsp ؛ نبسب ؛ إعلان التكرار h5> 1) إعلان مكرر لمتجه عدد صحيح وتوجيهه إلى عنصر الأول tt> في المتجه. ناقل العلامة & 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 ؛ // مشيرا إلى العنصر الأخير. pre> نبسب ؛ الحصول على قيمة وعرضها h6> الحصول على العنصر المشار إليه بواسطة المكرر وعرضه. كوت & lt؛ & lt؛ * ذلك ؛ pre> نبسب ؛ تحريك موضع المكرر h6> حرك موضع المكرر 3 مواضع للأمام. <قبل> تقدم (ذلك ، 3) ؛ نبسب ؛ إنشاء مكرر جديد من مكرر موجود h6> أنشئ مكررًا جديدًا استنادًا إلى واحد موجود ، مع تقدم 3 وظائف. auto it1 = next (it، 3)؛ نبسب ؛ عرض قيم المتجه باستخدام مكرر h6> متجه & lt؛ int & gt؛ :: iterator it؛ لـ (it = myvector.begin () ؛ it! = myvector.end () ؛ ++ هو) { نبسب ؛ cout & lt؛ & lt؛ * it & lt؛ & lt؛ & quot؛ & quot ؛؛ ونبسب ؛} اجتياز المتجه h6> لاجتياز المتجه من العنصر الأخير إلى الأول ، يتم استخدام مكرر عكسي & 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 ؛ // يشير إلى عنصر ، نبسب ؛ // الذي يأتي قبل الأول ،
مكرر الوصول العشوائي code>). & nbsp؛ يمكن لمكرر الوصول العشوائي الوصول إلى عنصر تعسفي للمتجه بالإضافة إلى الحركة المتسلسلة. فوائد التكرارات strong> 1) نبسب ؛ عند حذف العناصر والتكرار فوق العناصر باستخدام المؤشرات ( [] ) ، نحتاج إلى تتبع عدد العناصر المتبقية طوال الوقت حتى لا نتجاوز المتجه ، وباستخدام مكرر ، يمكن استخدام end () code> للإشارة إلى نهاية المتجه. 2) باستخدام مكرر ، يمكنك بسهولة إزالة العناصر وإدراجها في متجه ديناميكيًا. & nbsp ؛ نبسب ؛ إعلان التكرار h5> 1) إعلان مكرر لمتجه عدد صحيح وتوجيهه إلى عنصر الأول tt> في المتجه. ناقل العلامة & 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 ؛ // مشيرا إلى العنصر الأخير. pre> نبسب ؛ الحصول على قيمة وعرضها h6> الحصول على العنصر المشار إليه بواسطة المكرر وعرضه. كوت & lt؛ & lt؛ * ذلك ؛ pre> نبسب ؛ تحريك موضع المكرر h6> حرك موضع المكرر 3 مواضع للأمام. <قبل> تقدم (ذلك ، 3) ؛ نبسب ؛ إنشاء مكرر جديد من مكرر موجود h6> أنشئ مكررًا جديدًا استنادًا إلى واحد موجود ، مع تقدم 3 وظائف. auto it1 = next (it، 3)؛ نبسب ؛ عرض قيم المتجه باستخدام مكرر h6> متجه & lt؛ int & gt؛ :: iterator it؛ لـ (it = myvector.begin () ؛ it! = myvector.end () ؛ ++ هو) { نبسب ؛ cout & lt؛ & lt؛ * it & lt؛ & lt؛ & quot؛ & quot ؛؛ ونبسب ؛} اجتياز المتجه h6> لاجتياز المتجه من العنصر الأخير إلى الأول ، يتم استخدام مكرر عكسي & 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 ؛ // يشير إلى عنصر ، نبسب ؛ // الذي يأتي قبل الأول ،
[]
end () code> للإشارة إلى نهاية المتجه. 2) باستخدام مكرر ، يمكنك بسهولة إزالة العناصر وإدراجها في متجه ديناميكيًا. & nbsp ؛ نبسب ؛ إعلان التكرار h5> 1) إعلان مكرر لمتجه عدد صحيح وتوجيهه إلى عنصر الأول tt> في المتجه. ناقل العلامة & 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 ؛ // مشيرا إلى العنصر الأخير. pre> نبسب ؛ الحصول على قيمة وعرضها h6> الحصول على العنصر المشار إليه بواسطة المكرر وعرضه. كوت & lt؛ & lt؛ * ذلك ؛ pre> نبسب ؛ تحريك موضع المكرر h6> حرك موضع المكرر 3 مواضع للأمام. <قبل> تقدم (ذلك ، 3) ؛ نبسب ؛ إنشاء مكرر جديد من مكرر موجود h6> أنشئ مكررًا جديدًا استنادًا إلى واحد موجود ، مع تقدم 3 وظائف. auto it1 = next (it، 3)؛ نبسب ؛ عرض قيم المتجه باستخدام مكرر h6> متجه & lt؛ int & gt؛ :: iterator it؛ لـ (it = myvector.begin () ؛ it! = myvector.end () ؛ ++ هو) { نبسب ؛ cout & lt؛ & lt؛ * it & lt؛ & lt؛ & quot؛ & quot ؛؛ ونبسب ؛} اجتياز المتجه h6> لاجتياز المتجه من العنصر الأخير إلى الأول ، يتم استخدام مكرر عكسي & 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 ؛ // يشير إلى عنصر ، نبسب ؛ // الذي يأتي قبل الأول ،
reverse_iterator
rbegin ()
++
rend ()
N
1000 ms 256 Mb Rules for program design and list of errors in automatic problem checking