Remove elements in a vector
In C++17
C++
auto p = std::remove_if(std::begin(a), std::end(a), [](const auto& e) { return e.seleted(); });a.erase(p, std::end(a))
The complexity is $O(n)$
In C++20, we can do
c++
auto p = ranges::remove_if(a, &E::selected);a.erase(p, std::end(a))