#include <iostream>
#include <iterator>
#include <vector>

struct node
{
	node( int init )
	{
		attribute = init;
	}
	int attribute;
};

std::ostream& operator<<( std::ostream& os, const std::pair<int, struct node>& obj )
{
    os << obj.first;
    os << ";" << obj.second.attribute;
    return os;
}

int main() {
	
	std::vector<std::pair<int, struct node>> path;
	path.push_back( std::make_pair( 3, node( 5 ) ) );
	std::copy(path.begin(), path.end(), std::ostream_iterator<std::pair<int, struct node>>(std::cout, " "));
	
	return 0;
}