2015-09-14 70 views
-3

我想做一個使用二維矩陣的程序。 問題是,爲了避免有限制,我不知道如何聲明矩陣,因爲尺寸不是恆定的。我看到如何實現不恆定維度的向量,創建對象。但對於矩陣什麼都沒有......我該如何解決?矩陣與不恆定的值

+4

您可以使用['std :: vector'](http://en.cppreference.com/w/cpp/container/vector) – NathanOliver

回答

0

如果你知道如何處理可變尺寸向量你已經可以解決你的問題:

例如您可以存儲m×n矩陣A =(a_1,...,a_n)的列向量矢量或者行向量A^t =(a_1,...,a_m)的向量。

或者你可以將這樣一個矩陣的m×n個元素順序存儲到一個單獨的向量中。 您只需要枚舉一些元素即可將元素a_ij的索引i和j轉換爲單個索引k。

E.g.列舉行明智:

  • K = F(I,J)= [M(I-1)+(J-1)] + 1 = M(I-1)+ J

如果i來自{1,...,m},來自{1,...,n}的j,來自{1,...,mn}的k。

逆,選自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++矩陣庫。

+0

非常感謝!你解決了我的問題 –