تبدیل reverse_iterator به iterator - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تبدیل reverse_iterator به iterator

+1 امتیاز
سلام.

زمانیکه از reverse_iterator استفاده می کنم برای جستجو از انتهای لیست قصد دارم وقتیک که موقعیت را پبداکردم آن را به موقعیت در یک iterator تبدیل کنم یعنی موقعیت از ابتدای لیست . آیا راهی وجود داره؟
سوال شده بهمن 22, 1393  بوسیله ی hojat1 (امتیاز 875)   12 69 99

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

بله با استفاده از متد base() می توانید موقعیت عنصر را یافت.

#include <iostream>
using namespace std;
int main(){
	vector<int> arr = { 1, 2, 3, 2, 4, 5, 6 ,7,8,9};

	auto pos = std::find(arr.begin(), arr.end(), 2);
	cout << "forward search 2 " << endl;
	cout << "position:" <<  std::distance(arr.begin(), pos) << endl;
	cout << endl;
	auto r_pos = std::find(arr.rbegin(), arr.rend(), 2);
	cout << "reverser search 2" << endl;
	cout << "postion:" << std::distance(arr.begin(), r_pos.base() - 1) << endl;
	return 0;
}

 

پاسخ داده شده بهمن 24, 1393 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد اردیبهشت 6, 1394 بوسیله ی hojat1
...