c++ - 我可以在不循环遍历的情况下检查数组/vector 中的单词吗?

标签 c++ string search find

我相信我可以说...

for (int i = 0; i < noun[].size(); i++)
 {
    if ( word[0] == noun[i])
    { //do something }
 }

问题是,我需要用很多词重复多次。有时我想一次说很多字。像 if (words[0] == noun[/*any*/] && words[1] == verb [/*any*/]) 有没有办法告诉它检查数组/vector 中的每个元素都反对它吗?

或者也许有一些类似于数组的容器可以快速查找?

我只能找到一种在 python 中完成它的方法,但我从来没有用 python 编程,所以我想要一种在 C++ 中完成它的方法。

在 python 中我发现了这样的东西:

a = [1,2,3,4,5]
b = 4
if b in a:
  print("True!")
else:
  print("False")

来自这里:Check if a value exists in an array in Cython

最佳答案

除非有关于 vector 中特定元素的位置的一些规则暗示另一个元素的位置,如果存在,则检测存在的算法必须是 O(N)。

例如,如果 vector 是排序的,那么一个好的定位规则就成立,并且那里有很多 O(log(N)) 算法:std::lower_bound 就是这样一个函数。

关于c++ - 我可以在不循环遍历的情况下检查数组/vector 中的单词吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49115902/

相关文章:

c++ - 为RealBasic创建与C/C++库的绑定(bind)

c++ - 以自定义类作为参数的构造函数,抛出 'No matching function for call to...'

java - 如何在Java Formatter中转义减号?

python - 为什么我使用 python 从 RFID 读取器得到奇怪的输出?

python - 操作json文件python

firefox - 用 '+'(破折号)替换 '-'(加号)以替换 OpenSearch 的 URL 中的空格

c++ - 具有 pqxx 结果的模板函数

c - 从c中的输入字符串中删除字符

ios - 当 tableView 向下滑动时显示 UISearchController

c++ - opencv 中 2-D(2 个摄像机)的 3-D 坐标