比较来自不同容器的迭代器
在 C 中,在处理不同容器时了解控制迭代器比较的原则非常重要。问题出现了:“比较来自不同容器的迭代器是否可以接受?”
为了回答这个问题,我们参考 C 11 标准 (n3337):
由于 RandomAccessIterator 继承了 ForwardIterator 的要求,因此比较来自不同容器的迭代器是未定义的行为。
LWG 问题 #446 特别解决了这个问题并提出了建议对标准的以下修订:
“使用从两个不同范围 r1 和 r2 获取的两个迭代器值作为参数直接或间接评估任何比较函数或二元 - 运算符的结果是未定义的,除非明确定义另有描述。”
此修正案强调比较来自不同容器的迭代器,除非它们是公共范围的子范围,否则是未定义的行为。
以上是可以在 C 中比较来自不同容器的迭代器吗?的详细内容。更多信息请关注PHP中文网其他相关文章!