0

我有一个排序的 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;
4

0 回答 0