当前位置:  开发笔记 > 编程语言 > 正文

用于快速查找名称的容器

如何解决《用于快速查找名称的容器》经验,为你挑选了3个好方法。

我想存储字符串并为每个字符串分配一个唯一的ID号(索引就可以了).我只需要每个字符串的一个副本,我需要快速查找.我经常检查表中是否存在字符串,以至于我注意到了性能损失.什么是最好的容器用于此以及如何查找字符串是否存在?



1> CTT..:

我建议使用tr1 :: unordered_map.它被实现为散列映射,因此它具有用于查找的O(1)的预期复杂度以及O(n)的最坏情况.如果您的编译器不支持tr1,还有一个boost实现.

#include 
#include 
#include 

using namespace std;

int main()
{
    tr1::unordered_map table;

    table["One"] = 1;
    table["Two"] = 2;

    cout << "find(\"One\") == " << boolalpha << (table.find("One") != table.end()) << endl; 
    cout << "find(\"Three\") == " << boolalpha << (table.find("Three") != table.end()) << endl; 

    return 0;
}



2> Özgür..:

试试这个:

替代文字
(来源:adrinael.net)



3> Brian Neal..:

试试std :: map.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有