avr39ripe

cppFilterEven

Sep 20th, 2021
963
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3. template <typename T>
  4. void printArr(T* begin, T* end)
  5. {
  6.     while (begin != end)
  7.     {
  8.         std::cout << *begin++ << ' ';
  9.     }
  10.     std::cout << '\n';
  11. }
  12.  
  13.  
  14. int main()
  15. {
  16.     const int arrSize{ 10 };
  17.     int* arrSrc{ new int[10]{1,4,2,3,6,8,1,0,6,8} };
  18.     //int* arrSrc{ new int[10]{1,3,5,7,9,1,1,1,1,1} };
  19.     //int* arrSrc{ new int[10]{} };
  20.  
  21.     //4,2,6,8,0,6,8,0,6,8
  22.     int resSize{ 0 };
  23.  
  24.     auto begin{ arrSrc };
  25.     auto end{ arrSrc + arrSize };
  26.  
  27.     auto insertPos{ arrSrc };
  28.  
  29.     printArr(arrSrc, arrSrc + arrSize);
  30.  
  31.     for (; (insertPos != end) and (*insertPos % 2 == 0); ++insertPos,++resSize);
  32.  
  33.     if (insertPos != end)
  34.     {
  35.         resSize = 0;
  36.         begin = insertPos + 1;
  37.         while ( begin != end)
  38.         {
  39.             if (*begin % 2 == 0)
  40.             {
  41.                 *insertPos++ = *begin;
  42.                 ++resSize;
  43.             }
  44.             ++begin;
  45.         }
  46.     }
  47.    
  48.     printArr(arrSrc, arrSrc + arrSize);
  49.     printArr(arrSrc, arrSrc + resSize);
  50.  
  51.  
  52.  
  53.     //printArr(arrSrc, arrSrc + arrSize);
  54.  
  55.     //for (int i{ 0 }; i < arrSize; ++i)
  56.     //{
  57.     //  if (arrSrc[i] % 2 == 0)
  58.     //  {
  59.     //      ++resSize;
  60.     //  }
  61.     //}
  62.  
  63.     //int* arrDest{ new int[resSize] {} };
  64.     //auto copyPos{ arrDest };
  65.  
  66.     //for (int i{ 0 }; i < arrSize; ++i)
  67.     //{
  68.     //  if (arrSrc[i] % 2 == 0)
  69.     //  {
  70.     //      *copyPos++ = arrSrc[i];
  71.     //      //++copyPos;
  72.     //      //arrDestCopy[i] = arrSrc[i];
  73.     //  }
  74.     //}
  75.  
  76.     //printArr(arrDest, arrDest + resSize);
  77.  
  78.     delete[] arrSrc;
  79.     //delete[] arrDest;
  80.     return 0;
  81. }
RAW Paste Data