boost::ublas est une classe matrice... c'est déjà tout prêt.
Sinon pour ton truc variable / constant, c'est pas possible. La dimension d'un tableau doit être défini par une constante, et
manger(int a[g]);
ça marche pas, on peut pas passer un tableau entier, on le passe par pointeur :
manger(int * a);
Dans ton cas on a plutot recours aux template.
Regarde dans boost, tu as tout de fait (opérations, affichage, ...)
http://www.boost.org/libs/numeric/ublas/doc/matrix.htm
---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite