c++ - 快速字符串搜索?

标签 c++ string performance search vector

我有一个字符串 vector ,必须检查 vector 中的每个元素是否存在于给定的 5000 个单词列表中。 除了两个嵌套循环的普通方法外,在 C++ 中还有更快的方法吗?

最佳答案

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

如果您已经在使用 C++11,您还可以使用 std::unordered_set这对于查找来说甚至更快,因为它是作为哈希表实现的。

这是否适用于学校/大学:准备好解释这些数据结构如何变得更快。当你的老师要求你解释你为什么使用它们时,“互联网上的一些人告诉我”不太可能在课本上为你赢得贴纸。

关于c++ - 快速字符串搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14716915/

相关文章:

c++ - 模板解析 - operator<< not found with boost-test

algorithm - 标记长字符串中的有效单词

c - 如何在 C 中扫描特定的字符串格式?

python - 如何显示带有两位小数的 float ?

MySQL UPDATE 性能...更快

c++ - 在 std::all_of 中调用一个函数

c++ - 浮点与浮点文字比较的奇怪输出

c++ - 使用MFC时导出到excel文件

python 两个大型二维列表之间的快速均方误差

javascript - jQuery "keyup"检查 'Word Count' 时页面崩溃