Подтвердить что ты не робот

Как я могу проверить существование элемента в std::vector, в одном предложении?

Возможный дубликат:
Как найти элемент в std::vector?

Это то, что я ищу:

#include <vector>
std::vector<int> foo() {
  // to create and return a vector
  return std::vector<int>();
}
void bar() {
  if (foo().has(123)) { // it not possible now, but how?
    // do something
  }
}

Другими словами, я ищу короткий и простой синтаксис для проверки существования элемента в векторе. И я не хочу вводить другую временную переменную для этого вектора. Спасибо!

4b9b3361

Ответ 1

Несортированный вектор:

if (std::find(v.begin(), v.end(),value)!=v.end())
    ...

Отсортированный вектор:

if (std::binary_search(v.begin(), v.end(), value)
   ...

P.S. может потребоваться включить заголовок <algorithm>

Ответ 2

int elem = 42;
std::vector<int> v;
v.push_back(elem);
if(std::find(v.begin(), v.end(), elem) != v.end())
{
  //elem exists in the vector
} 

Ответ 3

Попробуйте std::find

vector<int>::iterator it = std::find(v.begin(), v.end(), 123);

if(it==v.end()){

    std::cout<<"Element not found";
}