fork download
  1. #include <iostream>
  2. #include <iterator>
  3. #include <vector>
  4. #include <algorithm>
  5.  
  6. int main() {
  7. // Начальный вектор
  8. std::vector<int> v = {0, 1, 0, 3, 0, 2, 6, 0, 0, 8 };
  9.  
  10. // Выводим вектор
  11. std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
  12. std::cout << std::endl;
  13.  
  14. // Удалаем все нулевые
  15. v.erase(std::remove(v.begin(), v.end(), 0), v.end());
  16.  
  17. // Выводим вектор
  18. std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
  19. std::cout << std::endl;
  20.  
  21. // Находим первый четный элемент
  22. auto it = std::find_if(v.begin(), v.end(), [](int elem){
  23. return elem % 2 == 0;
  24. });
  25.  
  26. // Если он есть в массиве, то вставляем после него то-не-понялл-что,
  27. // поэтому всталю туда пока число 100500, а Вы там поменяйте на то что надо
  28. if (it != v.end())
  29. v.insert(++it, 100500);
  30.  
  31. // Снова выводим вектор
  32. std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
  33. std::cout << std::endl;
  34.  
  35. return 0;
  36. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
0 1 0 3 0 2 6 0 0 8 
1 3 2 6 8 
1 3 2 100500 6 8