Produto cartesiano em c ++

Estou pesquisando há semanas sobre como criar um código que eu poderia aplicar ao produto cartesiano. Digamos que eu tenho duas matrizes:

int M[2]= {1,2};
int J[3] = {0,1,2};

Portanto, o código usa essas duas matrizes para aplicar a regra MXJ, portanto, teremos os pares (1,0) (1,1) (1,2) (2,0) (2,1) (2,2) e Quero que o novo resultado seja salvo em uma nova matriz em que cada índice da matriz contenha um par, por exemplo c [0] = (1,0). Ajuda por favor :(

questionAnswers(3)

yourAnswerToTheQuestion