将迭代器转换为标量索引
Turn an iterator into a scalar index?
有没有办法确定迭代器在其容器中的位置? 我正在寻找的"位置"将采用整数值的形式,它描述了迭代器距离容器开头的距离。
例如,vector.front()
将0
,vector.back()
将vector.size() - 1
std::distance
:
size_t index = std::distance( vector.begin(), it );
它在幕后所做的只是it - v.begin()
(对于随机访问迭代器,例如 vector)。否则,它只会递增第一个参数,直到到达第二个参数(这不是特别有效)。
相关文章:
- 数组索引的值没有增加
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 查找最接近的大于当前数字的数字的索引
- 在C++中调整向量中的索引
- 重载元组索引运算符-C++
- 给定一个向量,如何找到该向量的所有子集和的原始索引
- 为std::string的某个索引赋值
- 并行用于C++17中数组索引范围内的循环
- 为什么 std::optional::operator=(U&&) 要求你是非标量类型?
- 跟随整数索引列表的自定义类迭代器
- 如何在for循环中包含两个索引值的测试条件
- D3D11-将混合权重和索引传递到顶点着色器
- 将转换字符键入 int 以用作向量C++的索引
- 在 C++ 中访问数组负索引处的内存不会返回垃圾
- 如何为圆环创建索引
- 在子集化后将包含索引号的列表列表映射到标准索引序列
- 查找字符在两个索引之间出现的次数
- Azure Kinect 使用正文索引映射裁剪正文
- 将迭代器转换为标量索引