Общая обертка для вектора C ++ Операций структуры: удаление, find_if и т. Д.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Общая обертка для вектора C ++ Операций структуры: удаление, find_if и т. Д.

Сообщение Anonymous »

Я использую 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»