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