Проблема в том, что я не могу искать в std::list
, в соответствии с пользовательским вводом vID
.
Я пробовал много разных подходов, но он не работал.
struct VideoDetails
{
int VidID, Copies;
string MovieTitle, Genre, Production, FileName;
};
list <VideoDetails> MyList;
int vID;
cin >> vID;
Первая попытка :
find_if(MyList.begin(), MyList.end(), [](VideoDetails & VD) {return VD.VidID == vID; });
Вторая попытка :
auto pred = [](const VideoDetails & ID) { return ID.VidID == vID; };
find_if(Mylist.begin(), MyList.end(), vID) != MyList.end();
Третья попытка :
list <VideoDetails>::iterator iter;
for(iter = MyList.begin(); iter != MyList.end(); ++iter)
{
if ((*iter).VidID == vID) {
//
} else {
//
}
}
Ошибка первой попытки :
Error (active) E1738 the enclosing-function 'this' cannot be referenced in a lambda body unless it is in the capture list mp 3
Ошибка третьей попытки :
Error C2678 binary '==': no operator found which takes a left-hand operand of type 'int' (or there is no acceptable conversion) mp 3