我知道如何从向量迭代器中获取索引,方法是从中减去开始迭代器。例如:
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());