Here you are ( :-D )
#include <iostream>
#include <list>
#include <algorithm>
using namespace std;
int main()
{
list<int> origin{1, 2, 27, 46,- 42, 42, 17, 1, 3, 5, 7, 10, 8, 1024, 32};
list <int> odd;
list <int> even;
copy_if( origin.begin(), origin.end(), back_inserter(odd), [] (int i) { return (i & 1) == 1;});
copy_if( origin.begin(), origin.end(), back_inserter(even), [] (int i){ return (i & 1) == 0;});
for (auto x : origin)
cout << x << " ";
cout << "\n";
for (auto x : odd)
cout << x << " ";
cout << "\n";
for (auto x : even)
cout << x << " ";
cout << "\n";
}