У меня есть карта, где отдельные цвета отображаются на несколько сущностей.
Я хочу стереть все элементы с карты с заданным значением e
, переданным в качестве аргумента:
std::map<Color, Entity> encodedColors;
void eraseAllByValue(Entity e) {
for (auto it = encodedColors.begin(); it != encodedColors.end();) {
if (it->second == e) {
it = encodedColors.erase(it);
} else {
++it;
}
}
}
Вышеупомянутая функция работает очень хорошо, однако: как этого можно достичь с помощью std::for_each
или подобной конструкции STL? У меня проблема с созданием правильного лямбда-выражения.