采用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作为第一个参数传入,那么会报错。
因为类型不对。