读书人

set 还是 sort再binary_search解决方法

发布时间: 2012-05-28 17:59:54 作者: rapoo

set 还是 sort再binary_search
要在一个文件里找50个字符串,现在方案
1.直接

C/C++ code
set<string> strs;strs.find(xxx)

2.
C/C++ code
 vector<string> strs; sort() //sort strs; binary_search;


请问哪种方案效率高些, 或者还有没有其他方案,求指教

[解决办法]
差不多吧,set也是排序,Set底层结构是红黑树。查找会快一些。
[解决办法]
如果集合经常性需要增加,删除的话,set更好。
否则sort,bxxx.
[解决办法]
具体详细解释需要搬个板凳,瓜子看看EFF_STL TIP 23
[解决办法]
用set
[解决办法]
这个用set会更慢, 这个还是用AC或者DFA靠谱些 ...

[解决办法]
别谈ac自动机吧,用set多好,sort不知你怎么实现查找?是遍历吗?最坏情况要遍历50次。
[解决办法]
要在一个文件里找50个字符串
第一次遍历的时候就可以获取到结果了,
为什么你还要装到set或者vct再去查找呢?
[解决办法]
如果你用的VS8以上,用unordered_set,O(1)的速度,比set和binary_search都快
[解决办法]
qsort
bsearch

读书人网 >C++

热点推荐