Как написать оператор if и else для вектора? - PullRequest
0 голосов
/ 18 марта 2020

Я хотел бы знать, как я могу написать оператор if и else для вектора. Итак, скажем, у меня есть вектор, который включает в себя 1,2,3,4,5. Я хочу, чтобы оператор if возвращал строку, если число 1 находится внутри вектора. Я знаю, как это структурировать, но как мне написать заявление. Я написал ниже пример с вопросительными знаками, потому что я не уверен, что должно быть в скобках.

vector <int> myvec {1,2,3,4,5};
if (myvec??? 1) [
cout << "yes it is there" << endl;

]

Ответы [ 3 ]

3 голосов
/ 18 марта 2020

Вы можете использовать std::find:

std::vector<int> myvec {1,2,3,4,5};
if (std::find(myvec.begin(), myvec.end(), 1) != myvec.end()) {
    cout << "yes it is there" << endl;
}
0 голосов
/ 18 марта 2020

Вы можете использовать:

if (std::find(myvec.begin(), myvec.end(), 1) != myvec.end()) {
   ...
}

Я думаю, что будет лучше использовать функцию, которая выражает то, что вы хотите сделать.

if ( vector_contains_item(myvec, 1) ) {
   ...
}

Вы пу sh детали логи c к функции.

bool vector_contains_item(std::vector<int> const& myvec, int item)
{
    return (std::find(myvec.begin(), myvec.end(), item) != myvec.end());
}
0 голосов
/ 18 марта 2020

Различные варианты. Один из них -

 if (std::count(myvec.begin(), myvec.end(), 1) > 0)
 {
      cout << "yes it is there" << endl;
 }

. Он обнаружит наличие одного или нескольких элементов со значением 1. Если вы хотите проверить, существует ли точно один элемент со значением 1, измените > 0 на == 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...