#include <iostream>
#include <vector>
void printVector(std::vector<int> const &v) {
for (auto const &n: v) {
std::cout << n << " ";
}
}
int removeElement(std::vector<int>& vec, int val) {
int i = 0, end = vec.size() - 1;
while (i <= end) {
if (vec[i] == val) {
std::swap(vec[i], vec[end]);
end--;
vec.pop_back();
}
else {
i++;
}
}
return vec.size();
}
int main() {
std::vector<int> vec{ 1, 3, 8, 23, 8, 99, 8, 100, 7 };
int value = 8;
removeElement(vec, value);
printVector(vec);
}
/*
run:
1 3 7 23 100 99
*/