web-dev-qa-db-ja.com

C ++:2つのベクトルの比較

2つのベクトルを比較する方法はありますか?

if (vector1 == vector2)
    DoSomething();

注:現在、これらのベクトルはソートされておらず、整数値を含んでいます。

67
Jame

std::mismatch C++のメソッドを確認してください。

ベクトルの比較については、DaniWebフォーラムおよびansweredで説明されています。

C++:2つのベクトルの比較

以下のSO投稿を確認してください。あなたに役立ちます。彼らは異なる-2の方法で同じことを達成しました。

2つのベクトルC++を比較

26
Jhaliya

コード(vector1 == vector2)は正しいC++構文です。ベクトルには==演算子があります。

短いベクトルを長いベクトルの一部と比較したい場合、ベクトルにequal()演算子を使用できます。 ( ここのドキュメント

以下に例を示します。

using namespace std;

if( equal(vector1.begin(), vector1.end(), vector2.begin()) )
    DoSomething();
63
solvingPuzzles

議論によると here を使用して2つのベクトルを直接比較できます

==

if (vector1 == vector2){
   //true
}
else{
   //false
}
2
Shahrukh Haider

それらが本当にソートされていないままでなければならない場合(実際にはそうではありません。数十万の要素を扱っている場合は、なぜこのようなベクトルを比較するのかを尋ねる必要があります)ソートされていない配列で機能するメソッド。

私がそれを行う唯一の方法は、一時的なvector3を作成し、set_intersectionのすべての要素を追加してvector1を実行するふりをしてから、個々の要素ごとに検索することでしたvector2vector3があり、見つかった場合は削除します。私はそれがひどいように聞こえることを知っていますが、だから私はすぐにC++標準ライブラリを作成しません。

ただし、実際には、最初に並べ替えるだけです。

1
darvids0n