gpt4 book ai didi

c++ - C++ 中两个迭代器的减法如何表示 vector 项的索引?

转载 作者:行者123 更新时间:2023-12-03 08:32:46 27 4
gpt4 key购买 nike

在 GeeksForGeeks 的一篇博文中,两个迭代器的减法被用来表示 vector 的索引。该帖子的链接:

std::find in C++

我还在stackoverflow中看到了相关答案:

How to convert vector iterator to int in C++

但它没有用一个很好的例子来描述该机制,所以我对此感到困惑。因为,我无法分别打印迭代器 v.begin()it,但我可以打印它们的减法值,即 ( it - v.开始())

那么,减法如何表示 vector 项的索引?

最佳答案

减一RandomAccessIterator from another 给出了它们之间的距离,因为这就是 operator- 被定义为随机访问迭代器所做的事情。

如果你从另一个迭代器中减去begin(),你就得到了从容器的开头到第二个迭代器的距离,这自然与被引用的元素的索引值相同。第二个迭代器。

使用std::distance()而不是操作符重载更灵活,而且可能更清晰。

所有这些内容都有记录,应该在一本像样的书中涵盖。

关于c++ - C++ 中两个迭代器的减法如何表示 vector 项的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64712927/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com