1. ホーム
  2. c++

[解決済み] std::vector にある項目が存在するかどうかを調べるには?

2022-03-14 11:45:46

質問

ベクトル内に要素が存在するかどうかをチェックするだけで、それぞれのケースに対応できるようにしたいのです。

if ( item_present )
   do_this();
else
   do_that();

解決方法は?

を使用することができます。 std::find から <algorithm> :

#include <algorithm>
#include <vector>
vector<int> vec; 
//can have other data types instead of int but must same datatype as item 
std::find(vec.begin(), vec.end(), item) != vec.end()

これは、最初に見つかった要素へのイテレータを返します。存在しない場合は、最後から1つ前の要素へのイテレータを返します。あなたの例では

#include <algorithm>
#include <vector>

if ( std::find(vec.begin(), vec.end(), item) != vec.end() )
   do_this();
else
   do_that();