有没有办法确定迭代器在其容器内的位置?我正在寻找的“位置”将采用整数值的形式,它描述了迭代器距容器开头的距离。
例如,vector.front()
将是 0
,而 vector.back()
将是 vector.size () - 1
最佳答案
size_t index = std::distance( vector.begin(), it );
它在幕后所做的只是它 - v.begin()
(用于随机访问迭代器,例如 vector 的迭代器)。否则,它只会递增第一个参数直到它到达第二个(这不是特别有效)。
关于c++ - 将迭代器变成标量索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19658997/