Хорошо, я ожидаю, что здесь я ошибся. У меня есть список DisplayDevice3d, и каждый DisplayDevice3d содержит список DisplayMode3d. Я хочу удалить все элементы из списка DisplayDevice3d, у которых нет DisplayMode3d. Я пытаюсь использовать Lambda для этого, т.е.:
// 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;
});