我正在尝试编写一个函数,如果字符串中有两个相邻的字符都是数字,则返回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;
}
答案 0 :(得分:0)
取决于如何声明您的compare
方法,它可能是编译错误的根源。重要的是,传递的二进制谓词compare
not 不是成员函数。运行以下程序应具有1
的退出代码。
请注意,在此示例中,也可以将filter
函数设置为static
,但是我将其保留了下来,因此很容易在{{1}上不使用static
的情况下进行复制。 }功能。
compare