作者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