c++ - STL迭代器相等性是如何建立的?

标签 c++ stl

我想知道,STL 迭代器的相等性 (==) 是如何建立的? 它是简单的指针比较(因此基于地址)还是更花哨的东西?

如果我有来自两个不同列表对象的两个迭代器并比较它们,结果是否总是错误的?

如果我将一个有效值与超出范围的值进行比较怎么办?这总是错误的吗?

最佳答案

如果需要,迭代器类可以定义重载的 == 运算符。所以结果取决于operator==的实现。

您真的不应该比较来自不同容器的迭代器。我认为如果您这样做,一些调试 STL 实现会发出警告信号,这将帮助您在代码中发现这种错误使用情况。

关于c++ - STL迭代器相等性是如何建立的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/844768/

相关文章:

c++ - 检查字符串是否包含非字母数字字符

c++ - 如何使用 for_each 获取 vector 中值的索引?

c++ - Qt QPrinter setPaperSize 不能正常工作

c++ - 我怎样才能将原始数组的 memcpy 等效于 std::vector?

c++ - std::array<T, 0> 的目的是什么?

c++ - 如何使用CreateWindowEx创建win7风格的按钮

c++ - 为什么似乎没有必要包含一些 STL header

c++ - 当不知道通用 STL 容器的迭代器值类型时如何使用模板化迭代器?

c++ - 为什么在以空映射开始的feed时std::next卡住了

c++ - 寻找素数代码c++