#include <iostream>
#include <vector>
#include <list>


int main()
{
	int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	std::vector<int> u(std::begin(nums), std::end(nums));
	std::list<int>   v(std::begin(nums), std::end(nums));

	for (auto it = u.begin(); it != u.end(); )
	{
		if (*it % 2 == 0)
			it = u.erase(it);
		else
			++it;
	}

	for (auto it = v.begin(); it != v.end(); )
	{
		if (*it % 2) 
			it = v.erase(it);
		else
			++it;
	}

	for (auto &i : u)
		std::cout << i << " ";
	std::cout << std::endl;
	for (auto &i : v)
		std::cout << i << " ";
	std::cout << std::endl;

	return 0;
}
