bind1nd 和bind2nd的意思

bind1nd 和bind2nd的意思

 采用bind1st和bind2nd的意思,就是把参数绑定在第一位还是第二位。
继承于binary_function 类.
描述如下
Class binder1st binds the value to the first argument of the binary function, and binder2nd does the same thing
for the second argument of the function.

如下:例子

struct compare_str :binary_function<ST_DataResult*, char*, bool>
{
public:
    bool operator()(ST_DataResult* pDataRet, char* szTypeCode) const
    {
        return strcmp(pDataRet->sType , szTypeCode) == 0 ? true : false;
       
    }
};


。。。

char szTypeCode[4] = {'\0'};
strcpy(szTypeCode, sTypeCode);
pIt = find_if(m_d_ret_data.begin(), m_d_ret_data.end(),
        bind2nd(compare_str(), szTypeCode));

其中把szTypeCode变量传入到compare_str所定义的第二个参数位置传入。
如果写成bind1nd, 则是把szTypeCode作为第一个参数传入,那么会报错。
因为类型不对。


你可能感兴趣的:(bind1nd 和bind2nd的意思)