【发布时间】:2016-01-24 01:07:32
【问题描述】:
使用operator== 订购有什么不同吗?
我遇到了一个旧考试,上面写着:
注意
*it1 == *it2与*it2 == *it1不同
it1 在这种情况下是某种类型的迭代器 IT1 而it2 是某种类型的迭代器 IT2。 IT1 it1 和 IT2 it2 被当作函数的参数,其中 IT1 可以与 IT2 相同。示例代码:
template <typename IT1, typename IT2>
bool f(IT1 it1, IT2 it2) {
return *it1 == *it2;
}
有什么想法吗?在我看来,顺序不应该影响operator==的结果,所以我很困惑。
【问题讨论】:
-
可能与分配运算符
=混淆了? -
如果 == 运算符以不再可交换的方式重载,可能会有所不同。