我正在阅读“Accelerated C++”一书,其中一项练习要求我们模拟标题中的“equal”函数,到目前为止,我已经实现了简单版本,它采用以下三个参数:
template <class iterType1, class iterType2>
bool cequal(iterType1 begin, iterType1 end, iterType2 e){
while(begin != end){
if(!(*begin == *e))
return false;
++begin;
++e;
}
return true;
}
以及可以接受第四个参数的第二个版本...
template <class iterType1, class iterType2, class boolPred>
bool cequal(iterType1 begin, iterType1 end, iterType2 e, boolPred pred){
while(begin != end){
if(!pred(*begin, *e))
return false;
++begin;
++e;
}
return true;
}
我的问题是,这是理想的方法吗?还是这两个功能可以合并?