Хорошо, полагаю, я сделал здесь глупую ошибку. У меня есть список DisplayDevice3d, и каждый DisplayDevice3d содержит список DisplayMode3d. Я хочу удалить все элементы из списка DisplayDevice3d, у которых нет DisplayMode3d. Я пытаюсь использовать лямбда-выражение для этого, то есть: [
// If the device doesn't have any modes, remove it.
std::remove_if(MyDisplayDevices.begin(), MyDisplayDevices.end(),
[](DisplayDevice3d& device)
{
return device.Modes.size() == 0;
}
);
] Несмотря на то, что из 6 DisplayMode3d в MyDisplayDevices только 1 имеет DisplayMode3d в своей коллекции Modes, ничего не удаляется из списка.
Какую глупую ошибку я здесь совершил?
Edit:
Ах, хорошо, моя ошибка заключалась в том, что я должен был использовать MyDisplayDevices.remove_if вместо std :: remove_if, однако ответы ниже верны для использования std: : remove_if: p.
MyDisplayDevices.remove_if( [](DisplayDevice3d const & device)
{
return device.Modes.size() == 0;
});