Я использую C ++ 14. Я нахожу векторные операции C ++ стирание и удалять verbose и запутать и хочу написать простую общую обертку для удаления элемента из вектора struct s, если значение этого элемента соответствует предоставленной единой.std::vector selections = ...;
selections.erase(
std::remove_if(
selections.begin(), selections.end(),
[](MYSTRUCT item) { return item.text == L".."; }), selections.end());
< /code>
Моя цель - что -то упрощенное и больше вроде Java, например, < /p>
// Pseudo-code
removeElement(selections, { item.text == L".." });
это возможно, по крайней мере, в какой -то степени?
У меня есть аналогичные жалобы на find_if . Мне не нравится делать следующее, чтобы найти элемент по значению, < /p>
auto iter = std::find_if(driveItems.begin(), driveItems.end(),
[&](const MYSTRUCT& elem) { return elem.path == path;});
if (iter != driveItems.end()) {
return *iter;
}
< /code>
В конечном итоге я хочу иметь однострочную обертку, такую как Java, которая избегает типов итераторов и всего этого синтаксиса и просто делает: < /p>
findElement(driveItems, { return elem.path == path; });
Подробнее здесь: https://stackoverflow.com/questions/797 ... ind-if-etc