ポインタを格納するベクトルのベクトルがあります。現在、私はそれらを繰り返して各ポインターを比較し、等しくないものを見つけた場合、ベクトルも等しくありませんが、それがそのようなことを行う正しい方法であるかどうか疑問に思います。
UPD:std::vector<std::vector<Combination*> > combinations;
ポインタを格納するベクトルのベクトルがあります。現在、私はそれらを繰り返して各ポインターを比較し、等しくないものを見つけた場合、ベクトルも等しくありませんが、それがそのようなことを行う正しい方法であるかどうか疑問に思います。
UPD:std::vector<std::vector<Combination*> > combinations;
ポインタ自体を比較している場合はoperator==
、(ベクトルの)ベクトル全体で使用できます。最初に、2つのベクトルのサイズが等しいかどうかをチェックします。そうである場合は、その後、を使用して各要素を比較しoperator==
ます。したがって、ベクトルのベクトル、またはベクトルのベクトルのベクトルがある場合、これは再帰的に機能します。技術的には再帰ではありませんが、それぞれoperator==
が実際には異なる関数であるためです。
ポインターを逆参照している場合は、それを行う方法は問題ありません。ただし、その場合はstd::equal
、適切な述語を使用することを検討できます。