c++ - 如何将 boost::lambda 与 std::find_if 一起使用?

标签 c++

我有一个 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);

关于c++ - 如何将 boost::lambda 与 std::find_if 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1346287/

相关文章:

c++ - 交换堆栈上的两个值

c++ - ADL 和类型定义

c++ - Qt udp socket,什么会触发socket的readyRead信号?

c++ - 错误转换为请求的非标量类型

c++ - 过剩 : blank window

c++ - 通过 vs code 远程调试 arm 板时 Pretty-printer 不工作

c++ - 多态 C 风格的转换有任何开销吗?

c++ - 在现代 C++ 中实现对象流容器的最佳实践

c++ - 多维 cv::Mat 的逗号分隔初始值设定项

c++ - 使用类/结构的不同方法 - C++