zoukankan      html  css  js  c++  java
  • 标准库bind函数中使用占位符placeholders

            placeholders ,占位符。表示新的函数对象中参数的位置。当调用新的函数对象时,新函数对象会调用被调用函数,并且其参数会传递到被调用函数参数列表中持有与新函数对象中位置对应的占位符。

    举个例子:

            void function(arg1,arg2,arg3,arg4,arg5)

            {

                //do something

            }

            auto g = bind(function,a,b,_2,c,_1);

            新的函数对象:g

            被调用函数:function

            当调用函数对象g时候,函数对象g会调用function函数,并把其参数传给function函数,g的第一个参数会传给function的持有占位符_1的位置,即arg5。第二个参数会传给function的持有占位符_2的位置,即arg3。

            void g(X,Y);

            相对于调用下面函数

            function(function,a,b,Y,c,X);

            其中的arg1,arg2,arg4已经被绑定到a,b,c上。

            

            placeholders是一个命名空间,其本身定义在std命名空间中。placeholder中有名字_n (1,2,3,4,……n)。为了使用这些名字,两个命名空间都必须写上。例如:

    using namespace std::placeholders::_1;

          与bind函数一样,placeholders命名空间也定义在functional中。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    第36课 经典问题解析三
    第35课 函数对象分析
    67. Add Binary
    66. Plus One
    58. Length of Last Word
    53. Maximum Subarray
    38. Count and Say
    35. Search Insert Position
    28. Implement strStr()
    27. Remove Element
  • 原文地址:https://www.cnblogs.com/houjun/p/4802190.html
Copyright © 2011-2022 走看看