C++

[C++]ある値がvector内の要素に含まれているか否か判定する

More than 1 year has passed since last update.

vector内にある要素が含まれているか否かを知りたいことがよく有りました。

そういえばC++だとfindとかなかった(ような気がする)ので、下記のような関数に投げてあげると便利だったのでメモ。

例はint型で固定しています。

int vector_finder(std::vector<int> vec, int number) {

auto itr = std::find(vec.begin(), vec.end(), number);
size_t index = std::distance( vec.begin(), itr );
if (index != vec.size()) { // 発見できたとき
return 1;
}
else { // 発見できなかったとき
return 0;
}
}

使用例としてはこんな感じ。

int main(int argc, char const *argv[]) {

std::vector<int> data{4, 6, 5};
std::cout << vector_finder(data, 3) << std::endl;
// => 0
std::cout << vector_finder(data, 6) << std::endl;
// => 1
return 0;
}