我有一个std::vector,我想检查一个特定的属性
每个元素。 SomeStruct具有属性“类型”。我想检查这个属性
可以是Type1或Type2。

我的计划是使用boost::lambda。

std::vector<SomeStruct>::const_iterator it =
    std::find_if(
        vec.begin(), vec.end(),
        _1.type == SomeStruct::Type1 || _1.type == SomeStruct::Type2);

因为我需要访问每个元素的特定属性,所以我不确定是否可以
完全使用boost::lambda。

有什么提示吗?

最佳答案

std::find_if(
    vec.begin(), vec.end(),
    bind(&SomeStruct::type, _1) == SomeStruct::Type1 ||
    bind(&SomeStruct::type, _1) == SomeStruct::Type2);

10-06 02:00