我应该覆盖哪些操作符,以便我可以比较两个向量?
如果有
vector<Object>
是否足以覆盖对象的==操作符?
谢谢
vector的操作符==实际上是比较内容是否相等,在比较中,将调用"Object"的操作符==,这是您想要定义的操作符,这取决于您想要实现的逻辑。
为了方便,您可能还想实现bool operator==(const Object &lhs, const Object &rhs)
和operator!=
,它们在实现中将返回与operator==
相反的结果。
当您提供一个时,我认为最好同时提供两个,否则您的代码的客户(其他开发人员)可能会在没有必要的地方感到困惑。编写一个操作符调用另一个操作符可以使您更容易维护。