在 std::vector 中找到满足条件的最后一个元素

新手上路,请多包涵

我有这个要求来找到向量中小于一个值的最后一个元素。

像 find_first_of 但不是第一个我想要最后一个。我搜了一下,发现没有find_last_of但是有find_first_of。

为什么呢?标准方法是将 find_first_of 与反向迭代器一起使用吗?

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

阅读 978
1 个回答

使用 反向迭代器,如下所示:

 #include <iostream>
#include <vector>

int main()
{
  std::vector<int> v{1,2,42,42,63};
  auto result = std::find_if(v.rbegin(), v.rend(),
                             [](int i) { return i == 42; });

  std::cout << std::distance(result, v.rend()) << '\n';
}

现场演示

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

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