如何找出一个项目是否存在于 std::vector 中?

新手上路,请多包涵

我要做的就是检查向量中是否存在元素,这样我就可以处理每种情况。

 if ( item_present )
   do_this();
else
   do_that();

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

阅读 676
2 个回答

您可以使用 std::find 来自 <algorithm>

 #include <algorithm>
#include <vector>
vector<int> vec;
//can have other data types instead of int but must same datatype as item
std::find(vec.begin(), vec.end(), item) != vec.end()

这会将迭代器返回到找到的第一个元素。如果不存在,它会返回一个迭代器到最后一个。用你的例子:

 #include <algorithm>
#include <vector>

if ( std::find(vec.begin(), vec.end(), item) != vec.end() )
   do_this();
else
   do_that();

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

从 C++20 开始,使用范围 ( #include <ranges> )

     //SAMPLE DATA
    std::vector<int> vecOfElements = { 2,4,6,8 };

    //DO SOMETHING IF 8 IN VECTOR
    if (std::ranges::find(vecOfElements, 8) != vecOfElements.end())
    {
        std::cout << "DO SOMETHING" << std::endl;
    }

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

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