如何将adjacent_find与字符串C ++

时间:2017-01-10 15:44:28

标签: c++ function compiler-errors compare string-comparison

我正在尝试编写一个函数,如果字符串中有两个相邻的字符都是数字,则返回true。但是,根据我的代码,我不断得到格式错误:

C:\ MinGW的\包括\ C ++ \ 6.2.0 \位\ stl_algo.h:950:21: '_ForwardIterator std :: __ adjacent_find(_ForwardIterator,_ForwardIterator,_BinaryPredicate)[with _ForwardIterator = __gnu_cxx :: __ normal_iterator&gt ;; _BinaryPredicate = __gnu_cxx :: __ ops :: _ Iter_comp_iter]'

因此,我正在寻找解决方案或以我已经写过的方式不同的方式。 这是我的代码:

bool deriv2::compare(char a, char b){
  if (isdigit(a) == true && isdigit(b) == true){
      return true;
  }
  else return false;
}

bool deriv2::filter(string word){
  string::iterator it;
  it = adjacent_find (++it, word.end(), compare);
  if (it!=word.end()){
      return true;
  }
  return false;
}

1 个答案:

答案 0 :(得分:0)

取决于如何声明您的compare方法,它可能是编译错误的根源。重要的是,传递的二进制谓词compare not 不是成员函数。运行以下程序应具有1的退出代码。

请注意,在此示例中,也可以将filter函数设置为static,但是我将其保留了下来,因此很容易在{{1}上不使用static的情况下进行复制。 }功能。

compare