/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <iostream>
#include <vector>
#include <algorithm>
//Cassidoo's newsletter programming question
void
moveZeroes (std::vector < int >&arr)
{
int zeroCount = 0;
arr.erase (std::remove_if (arr.begin (), arr.end (),[&](const int &x)
{
if (x == 0)
{
zeroCount++;}
return x == 0;}
), arr.end ());
for (int i = 0; i < zeroCount; i++)
{
arr.push_back (0);
}
}
int
main ()
{
std::vector < int >x = { 1, 2, 0, 4, 0, -1, 0, 2, 3, 0, 1 };
moveZeroes (x);
for (auto & z:x)
{
std::cout << z << " ";
}
std::cout << std::endl;
return 0;
}