有一百个字符串常量,给定一个字符串,要求给出这个字符串是否在这一百个常量之内?我目前使用的是最笨的办法,就是一个一个的比较。最近想提高一下效率,我采用hash_map,谁知效率比一个一个比较还要低,不知怎么回事?
谁能给出一个高效的算法?

解决方案 »

  1.   

    排序  再搜索 
    或者直接利用map 里面的查找  
      

  2.   

    才100个常量,还不如用在map中用字符串常量做key值,然后用map的find方法去找快。hash_map适合大的数据集吧。小的数据集用个带find方法的stl容器足够了
      

  3.   

    map也试过,不比一个一个比较快
      

  4.   

    排序,二分查找
    用CAtlMap,字符串用CString,很快。微软说是o(1)时间度
      

  5.   

    100个常量比较一轮,应该是非常快了吧,要改也快不了多少了。
    或者可以套用一个经典的字符串转整数的hash函数,然后还是要进行字符串转整数,然后整数比较。
    感觉也快不了多少。主要是比较量太少了。