2012-04-07 12 views
3

に存在する場合C++のチェックは、私は、ベクターでの作業や、ベクター内の特定の場所にある要素が存在するかどうかを確認する必要があり、myvec[7]要素がベクトル

ように私は、ループの外で働くとする必要がありますよベクトルの任意の点についてこのチェックを実行することができます。ベクトルでこれを行う最も効率的な方法は何でしょうか?

答えて

7

これはあなたが探している小切手です:(myvec.size() >= 8)。 C++では、ベクトルに空白の要素はありません。つまり、ベクトル要素は連続するインデックスを持ちます。

2

これには2通りの方法があります。

次のコード例では、我々は、ベクトルvで元v [n]はで何かをしたいと仮定します

ウェイ1:

if(n<v.size()) 
    //do something with v[n] 
else 
    //do something else 

ウェイ2:

//do something using v.at(n) instead of v[n] 

ベクトルにない要素にアクセスしようとすると、例外が発生します。

どちらを使用しますか?その場合による。
要素がベクターにない場合は作業できますか?最初の方法を使用してください。
この要素は、コードにとって重要です。 2番目のメソッドを使用して、STLがその存在をあなたにチェックさせ、例外をキャッチすることを忘れないようにしてください。

関連する問題