2 つのベクトルを比較できるようにするには、どの演算子をオーバーライドする必要がありますか?
私が持っている場合
vector<Object>
オブジェクトの == 演算子をオーバーライドするだけで十分ですか?
ありがとう
2 つのベクトルを比較できるようにするには、どの演算子をオーバーライドする必要がありますか?
私が持っている場合
vector<Object>
オブジェクトの == 演算子をオーバーライドするだけで十分ですか?
ありがとう
vector の演算子 == は、コンテンツが等しいかどうかを実際に比較します。その比較では、「オブジェクト」の演算子 == が呼び出されます。これは、達成したいロジックに応じて定義する演算子です。
bool operator==(const Object &lhs, const Object &rhs)
利便性のために、おそらく と を実装したいと思うでしょうoperator!=
。これは、実装では の反対を返しoperator==
ます。
1 つを提供する場合は、両方を提供する方がよいと思います。そうしないと、コードのクライアント (他の開発者) が必要のない場所で混乱する可能性があります。1 つのオペレーターが別のオペレーターを呼び出すように記述すると、保守が容易になります。