使用 std::find() 搜索多个元素

新手上路,请多包涵

是否可以使用 std::find() 通过 1 个调用搜索多个元素?示例: std::find(vector.begin(), vector.end(), 0&&1&&D)

谢谢

原文由 Noobgineer 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

您不能使用 std::find 。假设 0&&1&&D 是一个包含三个值的列表,并且您试图在向量中找到具有任何这些值的元素,您可以使用:

  • std::find_if with a predicate (a lambda may be easiest eg [](const T& x) { return x == 0 || x == 1 || x == d; } , where T is whatever type your vector holds), or

  • std::find_first_of (链接页面有一个很好的例子)。

原文由 Tony Delroy 发布,翻译遵循 CC BY-SA 3.0 许可协议

C++ Reference 非常清楚地说明了这一点:

” 范围内 第一个元素的迭代器,比较等于 val 。如果没有元素匹配,函数返回 last 。”

所以你不能只用一个函数调用来做到这一点。

原文由 Nacho 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题