I have a doubt that I would like to clarify in my head. I am aware of the different behavior for std::vector between erase and std::remove>
std::vector
erase
std::remove>
std::remove is an algorithm from the STL which is quite container agnostic. It requires some concept, true, but it has been designed to also work with C arrays, which are static in sizes.
std::remove