The constructor for your table is not a y by x table. If each row can have a variable number of columns then it is not a y by x table
Each row *cannot* have a variable number of columns. For this reason I have changed the internal representation to simply be a vector, rather than a vector of vectors. The table holds decrement rates for a demographic model. For example, it may hold termination rates from employment, looked up by age and service with employer. The startY and startX parameters specify what age/service the table begins at.

It seems nicer or cleaner to me to be able to load in the rates into the table all at once in the constructor. What other options do you have - repeatedly calling something like fillrow() for fillcolumn() ? If a suitable iterator can be defined, how is that not preferred?