2012-04-07 51 views
0

我需要有数据结构,其中每个元素都可以通过(x,y)对(如nspoint)访问。我可以将它们存储在NSDictionary中,像@“8,10”这样的键,但我正在寻找更优雅和高效的解决方案(我不想拥有二维数组,因为我想要O(1 )通过坐标访问元素)NSPoint作为词典索引

+0

不要忘了你有'NSStringFromCGPoint(CGPoint point)'和'CGPointFromString(NSString * string)'使转换更容易 – 2012-04-07 09:09:31

+0

如何使用二维数组不会O(1)访问?如何构建和比较两个整数的字符串或NSValue键不会完全淹没查找时间? – 2012-04-07 09:38:49

回答

1

您可以使用NSValue作为关键字(+NSValue valueWithCGPoint:请参阅this link),可能有点“轻”。否则,如果这些值是x和y对有一些限制,例如, 256代表x,256代表y,可以使用位掩码,前8位表示x值,后8位表示y值(因为256 = 2^8)。