• 【BOOST C++ 12 函数式编程】(3) Boost.Boost.Bind


    一、说明Boost.Bind

            Boost.Bind 是一个库,它简化和概括了最初需要 std::bind1st() 和 std::bind2nd() 的功能。这两个函数被添加到 C++ 98 的标准库中,即使它们的签名不兼容,也可以连接函数。

    二、库应用示范

            Boost.Bind 被添加到 C++ 11 的标准库中。如果你的开发环境支持C++ 11,你会在头文件中找到函数std::bind()。根据用例,使用 lambda 函数或 Boost.Phoenix 可能比 std :: bind () 或 Boost.Bind 更好。

            例 41.1。 std::for_each() 具有兼容功能

    1. #include
    2. #include
    3. #include
    4. void print(int i)
    5. {
    6. std::cout << i << '\n';
    7. }
    8. int main()
    9. {
    10. std::vector<int> v{1, 3, 2};
    11. std::for_each(v.begin(), v.end(), print);
    12. }

            std::for_each() 的第三个参数是一个函数或函数对象,它需要一个唯一的参数。在示例 41.1 中,std :: for_each () 将容器 v 中的数字作为唯一参数一个接一个地传递给 print()。

            如果你需要传入一个签名不符合算法要求的函数,那就更难了。例如,如果您希望 print() 接受一个输出流作为附加参数,则不能再将其与 std::for_each() 原样使用。

            例 41.2。 std :: for_

  • 相关阅读:
    后端配置跨域怎么配置
    C++ day4
    cmake简单使用
    2023年中国位置服务(LBS)产业链及市场规模分析[图]
    Hudi(1.0、2.0)简介
    度量BGP监测源数量对AS可见性的影响
    SQL——基础查询
    LeetCode-795-区间子数组个数
    qt5-MVC:数据可视化的层次揭秘
    TensorFlow1
  • 原文地址:https://blog.csdn.net/gongdiwudu/article/details/127832675