我应该覆盖哪些运算符以便比较两个向量?
如果我有一个
vector<Object>
是否足以覆盖 Object 的 == 运算符?
谢谢
vector 的 operator == 实际上比较内容是否相等,在该比较中,将调用 "Object" 的 operator == ,这就是您要根据要实现的逻辑定义的运算符。
为了方便起见,您可能还想实现bool operator==(const Object &lhs, const Object &rhs)
and operator!=
,它在实现中将返回与operator==
.
当您提供一个时,我认为最好同时提供两个,否则您的代码的客户(其他开发人员)可能会在不需要的地方感到困惑。编写一个运算符调用另一个运算符可以让您更轻松地进行维护。