我想知道,STL 迭代器的相等性 (==) 是如何建立的? 它是简单的指针比较(因此基于地址)还是更花哨的东西?
如果我有来自两个不同列表对象的两个迭代器并比较它们,结果是否总是错误的?
如果我将一个有效值与超出范围的值进行比较怎么办?这总是错误的吗?
最佳答案
如果需要,迭代器类可以定义重载的 == 运算符。所以结果取决于operator==
的实现。
您真的不应该比较来自不同容器的迭代器。我认为如果您这样做,一些调试 STL 实现会发出警告信号,这将帮助您在代码中发现这种错误使用情况。
关于c++ - STL迭代器相等性是如何建立的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/844768/