Use the remove/erase idiom:
std::vector<int>& vec = myNumbers; // use shorter name vec.erase(std::remove(vec.begin(), vec.end(), number_in), vec.end());
What happens is that
remove compacts the elements that differ from the value to be removed (
number_in) in the beginning of the
vector and returns the iterator to the first element after that range. Then
erase removes these elements (whose value is unspecified).