2つのベクトルを比較する方法はありますか?
if (vector1 == vector2)
DoSomething();
注:現在、これらのベクトルはソートされておらず、整数値を含んでいます。
std::mismatch
C++のメソッドを確認してください。
ベクトルの比較については、DaniWebフォーラムおよびansweredで説明されています。
以下のSO投稿を確認してください。あなたに役立ちます。彼らは異なる-2の方法で同じことを達成しました。
コード(vector1 == vector2
)は正しいC++構文です。ベクトルには==
演算子があります。
短いベクトルを長いベクトルの一部と比較したい場合、ベクトルにequal()
演算子を使用できます。 ( ここのドキュメント )
以下に例を示します。
using namespace std;
if( equal(vector1.begin(), vector1.end(), vector2.begin()) )
DoSomething();
それらが本当にソートされていないままでなければならない場合(実際にはそうではありません。数十万の要素を扱っている場合は、なぜこのようなベクトルを比較するのかを尋ねる必要があります)ソートされていない配列で機能するメソッド。
私がそれを行う唯一の方法は、一時的なvector3
を作成し、set_intersection
のすべての要素を追加してvector1
を実行するふりをしてから、個々の要素ごとに検索することでしたvector2
のvector3
があり、見つかった場合は削除します。私はそれがひどいように聞こえることを知っていますが、だから私はすぐにC++標準ライブラリを作成しません。
ただし、実際には、最初に並べ替えるだけです。