#include <iostream>
#include <vector>

template <typename T>
void print(T begin, T middle, T end)
{
	for (T i = begin; i != middle; ++i) {
		std::cout << " " << *i;
	}
	std::cout << std::endl;

	for (T i = middle; i != end; ++i) {
		std::cout << " " << *i;
	}
	std::cout << std::endl;
}

int main ()
{
	typedef std::vector<int> vt;
	vt v;

	for (int i=0; i < 20; ++i)
		v.push_back(i);

	vt::iterator middle (&v[10]);
	print (v.begin(), middle, v.end());

	vt::iterator bettermiddle = v.begin();
	std::advance(bettermiddle, 10);
	print (v.begin(), bettermiddle, v.end());

	return 0;
}

