如何实现无序数组的快速查找?
'//自定义结构
Private Type PositionValue
row As Long 'x坐标
col As Long 'y坐标
PValue As String '值
End Type
'//定义数组
Private marrPValue() as PositionValue
已知坐标X、Y,值newValue,如何在数组marrPValue中快速查找满足条件(marrPValue(i).row=X AND marrPValue(i).col=Y)的元素,然后赋值marrPValue(i).PValue=newValue。
[解决办法]
可以在数据库服务器上或者mdb里加个表来控制,
这样可以通过sql查询来判断是否存在。
[解决办法]
x和y的取值范围是否有约定的(比如都是大于等于0的值, 且小于某个最大值)?
[解决办法]
不知道你有没有用过字典(Dictionary)没有,用这个应该可以解决。
[解决办法]
............................................
[解决办法]
字典(Dictionary)是主键与值的对应,可能通过工程一“引用”菜单引用“Microsoft Scripting Runtime”组件集合,里面就有字典(Dictionary)组件。然后你可能通过对象浏览器查看该字典(Dictionary)组件的成员,具体用法我都晤识点讲。
[解决办法]
//再问一下,字典(Dictionary)有什么限制或者需要特别注意的地方吗??
以前没用过,不知道会不会对其他程序有影响?
你放心用吧
[解决办法]
还是有需要注意的,就是主键的比较方式,即文本比较还是二进制方式比较,意义相当于 VB 的 Option Compare 选项一样,它有一个属性设置的。
还有就是主键名建议不要用纯数字的主键字符串。
字典(Dictionary)不会对其他程序有影响的。
[解决办法]
If marrPValue(i).row = x And marrPValue(i).col = y Then
试试将x,y分开判断,不要同时判断。