快速字符串搜索?

ofe*_*fey 8 c++ string performance search vector

我有一个字符串向量,必须检查向量中的每个元素是否存在于5000个单词的给定列表中.除了两个嵌套循环的普通方法之外,有没有更快的方法在C++中执行此操作?

Phi*_*ipp 9

您应该将字符串列表放入std :: set.它是为搜索而优化的数据结构.查找给定元素是否在集合中是一种比迭代所有条目快得多的操作.

当你已经在使用C++ 11时,你也可以使用std :: unordered_set,它更快地进行查找,因为它是作为哈希表实现的.

这应该是针对学校/大学的:准备解释这些数据结构如何变得更快.当你的导师要求你解释你使用它们的原因时,"互联网上的一些人告诉我"不太可能在课本上给你一个贴纸.