#include <vector>
#include <string>

class BlockRepresentation
{
    private:
        class Block
        {
            public:
                int id;
                int fpDimensions;
                std::vector<int> position;        // pointers in question
                std::vector<int> blockDimensions; // pointers in question
        };
        std::vector<Block> all_blocks;
    public:
        BlockRepresentation() {}
        void AddBlock( int id, int fpDimensions, int position[], int dimensions[] );
        std::string ToGPL();
};

void BlockRepresentation::AddBlock( int id, int fpDimensions, int position[], int dimensions[] )
{
    Block newBlock;
    newBlock.id = id;
    newBlock.fpDimensions = fpDimensions;
    newBlock.position = std::vector<int>(position, position + fpDimensions);
    newBlock.blockDimensions = std::vector<int>(dimensions, dimensions + fpDimensions);
    all_blocks.push_back( newBlock );
}

int main()
{
	int x[]  = {1,2,3,4,5};
	int y[] = {2,4,6,8,10};
	BlockRepresentation br;
	br.AddBlock(1,5,x,y);
	br.AddBlock(2,5,y,x);
}