Problem

2/8

تکرار کننده در بردار

Theory Click to read/hide

تکرار کننده ها
یکی از راه های تکرار بر روی عناصر در کانتینرها (ساختارهای داده) تکرار کننده (تکرارکننده) است )، که انواع مختلفی دارند.
 
Iterator - ساختار داده ای که « نشان می دهد» ; در برخی از عناصر کانتینر، و (برای برخی از کانتینرها) می تواند به عنصر قبلی/بعدی هدایت شود.

بردار از قدرتمندترین - تکرارکننده با دسترسی تصادفی(تکرار کننده دسترسی تصادفی) استفاده می کند.  یک تکرار کننده دسترسی تصادفی می تواند علاوه بر حرکت متوالی به یک عنصر دلخواه از بردار دسترسی داشته باشد.

مزایای تکرار کننده
1)  هنگام حذف عناصر و تکرار روی عناصر با استفاده از شاخص‌ها ([])، باید تعداد عناصر باقی‌مانده را همیشه پیگیری کنیم تا از بردار فراتر نرویم و با استفاده از یک تکرارکننده، شما می توانید از end()< /code> برای نشان دادن پایان بردار استفاده کنید.
2) با استفاده از یک تکرار کننده، می توانید به راحتی عناصر را به صورت پویا حذف و در یک بردار درج کنید. 
 
اعلامیه تکرار کننده
1) اعلام یک تکرار کننده برای یک بردار عدد صحیح و نشان دادن آن به عنصر اولین در بردار. بردار <int> myvector = { 1, 2, 3, 4, 5 }; بردار <int>::iterator it = myvector.begin();
2) اعلام تکرارگر برای یک بردار عدد صحیح و نشان دادن آن به عنصر بعد از آخرین در بردار. بردار <int> myvector = { 1, 2, 3, 4, 5 }; بردار <int>::iterator it = myvector.end(); // به عنصر بعد از آخرین مورد اشاره می کند، بردار <int>::iterator it1 = myvector.end() - 1 ; // اشاره به آخرین عنصر.  
دریافت و نمایش یک مقدار
دریافت و نمایش عنصر اشاره شده توسط تکرار کننده. cout << *it;  
انتقال موقعیت تکرارکننده
موقعیت تکرار کننده را 3 موقعیت به جلو حرکت دهید. <پیش> advance(it, 3);  
ایجاد یک تکرار کننده جدید از یک تکرار کننده موجود
یک تکرار کننده جدید بر اساس یک موجود، ایجاد کنید و 3 موقعیت را ارتقا دهید. auto it1 = next(it, 3);  
نمایش مقادیر برداری با استفاده از تکرار کننده
بردار<int>::iterator it; for (it = myvector.begin(); it != myvector.end(); ++it) {   cout<<*آن<<" ";  }
پیمایش برداری
برای پیمایش بردار از آخرین عنصر به اولین عنصر، از یک تکرار کننده معکوس reverse_iterator استفاده می شود که با این روش به دست می آید:
1) rbegin() -  یک تکرار کننده معکوس نشان می دهد که به آخرین عنصر بردار اشاره می کند، استفاده از عملیات ++ منجر به انتقال به عنصر قبلی می شود؛
2) rend() -  یک تکرار کننده معکوس را برمی گرداند که به عنصر قبلی بردار اشاره می کند، استفاده از عملیات ++ منجر به انتقال می شود  بعدی. vector<int>::reverse_iterator it = myvector.rbegin();  // به آخرین عنصر اشاره می کند vector<int>::reverse_iterator it = myvector.rend();    // به یک عنصر اشاره می کند،   // که قبل از اولین می آید،

Problem

دنباله ای از اعداد صحیح به شما داده می شود.  برنامه ای بنویسید که یک بردار را با استفاده از reverse_iterator معکوس کند.

ورودی
اولین عدد داده شده N - تعداد عناصر در دنباله (1<= N <= 100). سپس اعداد N جدا شده با فاصله نوشته می شوند.
 
خروجی
همه عناصر بردار حاصل را در یک خط خروجی بگیرید و آنها را با فاصله از هم جدا کنید.
 
مثال
<سر> <بدن>
# ورودی خروجی
1 5
1 2 3 4 5
5 4 3 2 1