gpt4 book ai didi

c++ - 如何找出迭代器是否在一个范围内?

转载 作者:太空宇宙 更新时间:2023-11-03 10:32:17 24 4
gpt4 key购买 nike

假设我有一个包含三个迭代器的容器,it1it2it3。现在我正在使用 it1it2 来定义一个范围,例如传递给一些标准算法。

如何确定 it3 是否在 it1it2 定义的范围内?

我知道将临时迭代器从 it1 推进到 it2 并在每一步检查 it3 的强力方法。有没有更快的方法?

首选的解决方案是使用标准 C++,不使用 boost 等库。

edit: ìt3 作用于给定容器的相同实例,对于 it1it2,没有先验的 总是这样。所以另一个问题是:有没有办法找出两个迭代器属于同一个容器实例?

最佳答案

随机访问迭代器是可比较的。就做 it1 < it3 && it2 > it3 - 如果它们属于同一个集合。

您可以在支持 O(1) 索引的集合上获得随机访问迭代器,例如 vector , deque , 和 array .

编辑:检查一个交互器是否属于给定的集合显然不可行,这应该是一个完全不同的问题。参见 this question更多细节。 (tl;博士:你不能。)

关于c++ - 如何找出迭代器是否在一个范围内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13414941/

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