例如,如果我像这样使用std::find_if
:
std::vector<Rect>::iterator it =
std::find_if(regions.begin(), regions.end(), find_region(x,y));
我可以直接获得迭代器it
的索引吗?
答案 0 :(得分:8)
从<iterator>
标头文件中尝试std::distance(regions.begin(), it)
。
答案 1 :(得分:1)
答案 2 :(得分:1)
使用std :: distance()。但是,请确保通过修改其间的向量来意外地使迭代器无效。
答案 3 :(得分:1)
矢量迭代器是随机访问,因此您只需使用
即可it - regions.begin()
但是std :: distance适用于更多种类的迭代器类型。