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

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

Сообщение Anonymous »

Я использую C ++ 14. Я ненавижу векторные операции C ++ стирания и удалить (которые являются словесными и запутанными) и хочу написать простую общую обертку, чтобы удалить элемент из вектора struct s, если значение этого элемента соответствует предоставленной.

Код: Выделить всё

std::vector selections = ...;
selections.erase(
std::remove_if(
selections.begin(), selections.end(),
[](MYSTRUCT item) { return item.text == L".."; }), selections.end());
< /code>
Я новичок в C ++ и не знаю много о его параметрах Lambda или о том, как использовать дженерики, но моя цель - что -то упрощенное и в большей степени в соответствии с 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>
В конечном итоге я хочу иметь однострочную обертку A La Java, которая избегает типов итераторов и всего этого синтаксиса и просто делает < /p>
   findElement(driveItems, { return elem.path == path; });
Любые предложения оценены!

Подробнее здесь: https://stackoverflow.com/questions/797 ... ind-if-etc

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