使用base()将reverse_iterator转换为(转发)迭代器

时间:2013-07-28 18:43:52

标签: c++ stl iterator

我有一个排序的std :: vector,我必须使用reverse_iterator进行搜索。它确实返回了我搜索的元素的reverse_iterator。但我需要知道向量中相应的前向迭代器。我搜索了stackoverflow,它显示了一些人们建议使用base()进行转换的帖子

vector<double>::reverse_iterator rit = std::upper_bound(sortData.rbegin(), sortData.rend(), 0.3);

cout << "the element in the vector with reverse iterator is " << *rit << endl;

然而,在我发现的帖子中,人们说告诉相应的前向迭代器,我需要使用(rit + 1).base()而不是rit.base(),我不明白为什么。如果我这样做,我无法检索相同的元素。所以我改用rit.base(),所以它是对的吗?

vector< double >::iterator it=rit.base();
cout << "the element in the vector with forward iterator is " << *it << endl;

0 个答案:

没有答案