c++ - 将迭代器变成标量索引?

标签 c++ iterator

有没有办法确定迭代器在其容器内的位置?我正在寻找的“位置”将采用整数值的形式,它描述了迭代器距容器开头的距离。

例如,vector.front() 将是 0,而 vector.back() 将是 vector.size () - 1

最佳答案

std::distance :

size_t index = std::distance( vector.begin(), it );

它在幕后所做的只是它 - v.begin()(用于随机访问迭代器,例如 vector 的迭代器)。否则,它只会递增第一个参数直到它到达第二个(这不是特别有效)。

关于c++ - 将迭代器变成标量索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19658997/

相关文章:

java - 类转换异常 : ArrayList cannot be cast to

java - 迭代器的 next() 方法

c++ - First Boost 计划

c++ - 有没有办法刷新与程序相关的整个CPU缓存?

c++ - 如何使用可变数量的参数为函数起别名?

c++ - 从 std::copy 和 std::copy_n 中提取输入迭代器

c++ - STL 迭代器不起作用?不知道为什么

c++ - 用于二进制输出的 ostream_iterator

c++ - 通过引用传递表达式与通过引用传递变量

c++ - 如何使用 C++ 在 Arduino 上制作 LED 闪光灯,但除了 millis() 之外不使用任何函数