2012-05-09 7 views
9

ベクトルv1がベクトルv2の内部にあるかどうかを確認しようとしています。私のベクターは注文され、注文は保存されている必要があります。例えばSTLベクトルの中にC++ STLベクトルがあるかどうかを調べる

、もしV1 =、Iはを指すイテレータを取得したいと思いV2 =( bはE、F、)( B) v2

STL findは、ベクトル内で1つのオブジェクトのみを検出します。私が望むものは、string :: findと似たものです。

STLにこれを行う機能はありますか?

+0

あなたのベクターが注文されたと言うとき、ある要素を比較してどちらが最初に来るのかを判断できるような基準で注文されているということですか?あるいは、要素を見て比較するだけでは導き出せない特定の順序でそれらを設定したことを意味しますが、外部にあるかどうかに依存していますか? –

+1

[std :: includes](http://en.cppreference.com/w/cpp/algorithm/includes)が役立つかもしれませんが、あなたのケースでどのような順序が使用されているのかわかりません。 –

+1

私はSTL vectorを使って、要素を見て比較するだけでは派生できない順序付きリストをモデル化したことを意味します。 v1のメンバーが同じ順序でv2に登場するかどうかを調べる必要があります。私はベクトルをソートできません。文字列を別の文字列を検索するときにソートしないのと同じように。 – Ari

答えて

13

別のシーケンス内のサブシーケンスを検索したいようです。あなたは標準ライブラリからstd::searchでそれを行うことができます。

auto it = std::search(v2.begin(), v2.end(), v1.begin(), v1.end()); 
+0

ありがとう、私はこれが私が探していたものだと思います! – Ari

関連する問題