Raw*_*ani 2 c++ iterator vector
在 GeeksForGeeks 的一篇博文中,两个迭代器的减法被用来表示向量的索引。该帖子的链接:
我也在stackoverflow上看到过相关的答案:
但它没有用一个很好的例子来描述该机制,所以我对此感到困惑。因为,我无法分别打印迭代器v.begin()和it,而我可以打印它们的减法值( it - v.begin() )。
那么,减法如何表示向量项的索引呢?
将一个RandomAccessIterator与另一个 RandomAccessIterator 相减即可得到它们之间的距离,因为这就是operator-随机访问迭代器的定义。
如果从另一个迭代器中减去begin(),则得到从容器的开头到第二个迭代器的距离,这自然与第二个迭代器引用的元素的索引值相同。
使用std::distance()运算符重载代替运算符更灵活,并且可能更清晰。
所有这些内容都有记录,应该在一本像样的书中涵盖。
| 归档时间: |
|
| 查看次数: |
811 次 |
| 最近记录: |