ベクトルイテレータから開始イテレータを減算することにより、インデックスを取得する方法を知っています。例えば:
vector<int>::iterator it = find(vec.begin(), vec.end(), x);
size_t position = it - vec.begin();
x
しかし、今はベクトルの最後のインデックスを見つけたいと思っています。逆イテレータから実際のインデックスを取得するにはどうすればよいですか? うまくいくように見える次のことを見つけました(編集:そうではありません)が、より良い(より慣用的な方法など)方法があるかもしれません。
vector<int>::reverse_iterator it = find(vec.rbegin(), vec.rend(), x);
size_t position = vec.size() - (it - vec.rbegin());