如何通过结构中的变量找出结构向量中是否存在结构

时间:2018-03-09 04:07:19

标签: c++11 vector std

我想检查载体中是否存在元素。我搜索了答案,我发现了这个

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

如果向量是类型结构怎么办?我们仍然可以使用它来查找向量中是否匹配。我想在结构条目中使用字段id在向量中找到。有可能??

    struct entry{
        int id;
        int array[4] = {0};
        int aray[4] = {0};
    };

1 个答案:

答案 0 :(得分:1)

您需要的是std::find_if()

auto it = std::find_if(vec.begin(), vec.end(), [](S s) { return 5 == s.id; } );
if (vec.end() != it)
    do_this(); // it now points to the S instance found in the vector
else
    do_that();