我试图制作一个使用二维矩阵的程序。 问题是,为避免限制,我不知道如何声明矩阵,因为尺寸不是常数。我看到如何实现具有不恒定维度的向量,创建对象。但是对于矩阵没什么......我怎么解决?
答案 0 :(得分:0)
如果您知道如何处理可变尺寸矢量,则可以解决问题:
E.g。你可以存储m x n矩阵A =(a_1,..,a_n)的列向量向量,或行向量的向量A ^ t =(a_1,..,a_m)。
或者您可以将这种矩阵的m×n个元素顺序存储到单个向量中。 您只需要对元素进行一些枚举,即将元素a_ij的索引i和j转换为单个索引k。
E.g。行列明:
如果我来自{1,..,m},j来自{1,..,n},k来自{1,..,mn}。
反向,从k计算i和j是:
i = g_1(k)=((k-1)div m)+ 1
j = g_2(k)= k - m(i-1)= k - m(g_1(k)-1)
如果你不在乎原理如何完成,只需要一些工作代码,你应该搜索一些C ++矩阵库。