0

2 つのベクトルを比較できるようにするには、どの演算子をオーバーライドする必要がありますか?

私が持っている場合

vector<Object>

オブジェクトの == 演算子をオーバーライドするだけで十分ですか?

ありがとう

4

2 に答える 2

4

vector の演算子 == は、コンテンツが等しいかどうかを実際に比較します。その比較では、「オブジェクト」の演算子 == が呼び出されます。これは、達成したいロジックに応じて定義する演算子です。

于 2013-06-04T15:41:20.807 に答える
2

bool operator==(const Object &lhs, const Object &rhs)利便性のために、おそらく と を実装したいと思うでしょうoperator!=。これは、実装では の反対を返しoperator==ます。

1 つを提供する場合は、両方を提供する方がよいと思います。そうしないと、コードのクライアント (他の開発者) が必要のない場所で混乱する可能性があります。1 つのオペレーターが別のオペレーターを呼び出すように記述すると、保守が容易になります。

于 2013-06-04T15:41:06.407 に答える