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.base() の代わりに (rit+1).base() を使用する必要があることを伝えるように言っています。理由がわかりません。そのようにすると、同じ要素を取得できません。代わりに rit.base() を使用するので、それでよろしいですか?

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

0 に答える 0