有一个增长为
的表格1,1
1,1,2
1,1,3,3
1,1,4,4,6
1,1,5,5,10,10
1,1,6,6,15,15,20
.....and so on
如果我想找到表格的特定元素,就像我想找到第6行的第4个元素那么答案将是6但是如果我想找到任何n> = 1 m的第m行的第n个元素; = 1然后怎么做?
答案 0 :(得分:1)
这些数字看起来像二项式系数,所以这个"表"可以Pascal's triangle按行大小重新排序。
尽管如此,这只是无数多个表格中的一个"那就是这样开始的。如果您没有为特定的制作规则命名或以其他方式推断出" table"的任意值,那么就无法确定哪些无限多的"表& #34;你在这里。
答案 1 :(得分:0)
我假设您希望将值保存在某种表中,而不会浪费内存,例如为每行提供比所需更多的插槽。
为此,我建议使用矢量向量(假设您的值是整数):
std::vector< std::vector<int> > table;
如果你确定(m,n)的值存在,你可以得到它:
int value = table[m][n];
(注意m和n从0开始计算。)
如果您不确定使用更安全的
int value = table.at(m).at(n);
如果(m,n)不存在则抛出异常。
要添加一行,您可以调用
table.resize(table.size() + 1);
并向行添加列
table[m].resize(table[m].size() + 1);
我建议将表放入特殊类的protected或private部分,并添加函数以根据需要访问元素。