Ответ 1
Несортированный вектор:
if (std::find(v.begin(), v.end(),value)!=v.end())
...
Отсортированный вектор:
if (std::binary_search(v.begin(), v.end(), value)
...
P.S. может потребоваться включить заголовок <algorithm>
Возможный дубликат:
Как найти элемент в 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
}
}
Другими словами, я ищу короткий и простой синтаксис для проверки существования элемента в векторе. И я не хочу вводить другую временную переменную для этого вектора. Спасибо!
Несортированный вектор:
if (std::find(v.begin(), v.end(),value)!=v.end())
...
Отсортированный вектор:
if (std::binary_search(v.begin(), v.end(), value)
...
P.S. может потребоваться включить заголовок <algorithm>
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
}
Попробуйте std::find
vector<int>::iterator it = std::find(v.begin(), v.end(), 123);
if(it==v.end()){
std::cout<<"Element not found";
}