有没有办法确定迭代器在其容器内的位置? "位置"我正在寻找一个整数值的形式,它描述了迭代器与容器开头的距离。
例如,vector.front()
为0
,vector.back()
为vector.size() - 1
答案 0 :(得分:11)
size_t index = std::distance( vector.begin(), it );
它在幕后的作用只是it - v.begin()
(对于随机访问迭代器,例如vector)。否则,它只是增加第一个参数,直到它到达第二个参数(这不是特别有效)。