Objective-C中最快的键/值对容器

时间:2012-03-19 22:06:38

标签: objective-c map

我正在创建语法高亮引擎。我的需要非常具体。关键字将通过指针与其各自的属性数组相关联。数据结构如下所示:

dict = {
    "printf": keyword_attr_ptr
  , "sprintf": keyword_attr_ptr
  , "#import": special_attr_ptr
  , "string": lib_attr_ptr
}

查找需要非常快,因为我将在每个按键上遍历此列表。

我问这个问题是因为我找不到任何关于NSDictionary如何缓存(如果它)并通过其键查找值的好文档(它是否使用了地图?一个哈希映射?)。我可以依靠NSDictionary进行优化以按字符串搜索键吗?

当我在很久以前做类似的事情时,我使用了MFC CMap功能,效果非常好。 NSDictionary 出现等同于CMap,但未指定密钥类型,NSDictionary明确指出密钥可以是任何类型的对象。我只是想确保在我为这个问题投入大量精力之前能够非常快地依赖它来恢复结果。

更新1

经过一天的研究,我在SO上问这个问题,然后我马上就找到了答案......去看看。

这是与词典相关的文档: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Collections/Articles/Dictionaries.html

它使用哈希表来管理其存储。我想简短的回答是它几乎等同于CMap。

0 个答案:

没有答案