首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

怎么实现无序数组的快速查找

2012-01-16 
如何实现无序数组的快速查找?//自定义结构PrivateTypePositionValuerowAsLongx坐标colAsLongy坐标PValueAs

如何实现无序数组的快速查找?
'//自定义结构
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分开判断,不要同时判断。

热点排行