g++中使用std map根据value查找find_if

error: no matching function for call to 'ptr_fun()'


#include
#include

这两个是必须的



bool equal(std::pair data,char* ip0)
{
 if(strcmp(data.second->ip,ip0) == 0)
 {
  return true;
 }else
 {
  return false;
 }
}

 map::iterator iter_find;

iter_find = std::find_if(m_devListPreIns.begin(),m_devListPreIns.end(),std::bind2nd(std::ptr_fun(::equal),szip));


关键时候到了,哈哈,上面定义的equal函数前面的两个::是必须的,否则就会报告

 map::iterator iter_find;

你可能感兴趣的:(linux,stl,find_if,map,g++)