#include <iostream>
#include <vector>


template <typename T>
std::ostream& operator<< (std::ostream& out, const std::vector<T>& v) {
	if (!v.empty()) {
		auto it = v.begin();;
		for (; it != v.end() - 1; ++it)
		{
			out << *it << ", ";
		}
		out << *it << std::endl;
	}
	return out;
}

int main()
{
	std::vector<int> v{ 1, 2, 3, 4 };
	
	std::cout << v;

	return 0;
}