2016-01-16 132 views
1

我有我想在二維複製(如鋸齒)數組 這是我的代碼:快速複製陣列VB6.0

Dim cB(1000000) As Double 
Dim buffer(50, 1000000) As Double 

For I = 1 To 1000000 
    cB(I) = CInt(Int((50 * Rnd()) + 1)) 
Next 

我可以使用的複製認證機構緩衝。像這樣的代碼:

For I = 1 To 10 

    For j = 1 To 1000000 
     buffer(I, j) = cb(j) 
    Next 

Next 

但我想知道有沒有更快的方法來做到這一點?在vb.net或C#中我可以使用List。 在vb6.0中有這樣的事嗎?

謝謝。

回答

1

也許根本不復制數組?

Function AccessMyArray(arr, i, j) 
    ' TODO: add range check using LBound()/UBound() 
    AccessMyArray = arr(i * 1024 + j) 
End Function 
+0

這不是我的問題。我希望複製數組儘可能快地以多維方式進行。 –

+0

我明白了,但爲什麼你想改變數組結構如此平凡而沒有任何實際需要?你的問題似乎集中在將一維數組轉換爲一個統一的嵌套數組(即10240個項目中的一行變成1024個項目的10個行,這基本上是一個無操作)。 – Tomalak

1

在VB6中沒有通用的List對象,但有一個Dictionary對象,它大致等同於.Net中的通用Dictionary對象。設置對「Microsoft Scripting Runtime」的引用,您會發現它。