作者Daira (Daira)
看板Visual_Basic
標題[VB6 ] VB6 是如何實做字串陣列的?
時間Tue Jun 14 16:47:56 2005
因為最近寫的程式會需要建立一個龐大的字串陣列做排序及讀寫
舉列來說 Dim S(n) As String,n 可能大於 10 ^ 5
因此想了解 VB6 對字串陣列的實做方式,以及如何能加速並節省記憶體
以 C 的觀點來看,每一個字串都是一個 Char Array
因此如果要在 C 中建立字串陣列,可以直接開一個二維 Char Array
但缺點是每一個字串的長度必須固定,當字串長度差異很大時,很多記憶體是浪費的
不然就是開一個 Char Pointer Array,然後另外動態配置記憶體給每一個字串
這樣雖然記憶體省下了,但每次變動字串就必須重新配置記憶體長度
尤其是在排序時,字串會有大量的變動(這裡假設不能直接交換 Pointer)
不知道 VB6 的字串陣列是哪一種做法(我這裡指的是 VB 的動態長度字串)
如果是方法一,那是不是在字串變動時,等於整個陣列都要重新配置記憶體
又如果遇到這種情形,有沒有什麼方法可以做到速度和空間的最佳化
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.104
1F:推 neplayer:我覺得如果你要用vb6140.120.134.239 06/15
2F:→ neplayer:那效率通常都不是考慮的重點吧140.120.134.239 06/15
3F:→ neplayer:不過我也想知道vb6是怎麼實作的XD140.120.134.239 06/15