我正在研究Koenig&Moo的"Accelerated C++"一书.
练习8-2问我对我自己来实现一些模板化的功能<algorithm>和<numeric>,并指定什么样的迭代器做我的实现需要.
在尝试实现时std::search,我确定我只需要"输入"迭代器.
到目前为止,这是我的代码:
template <class In1, class In2>
In1 search(In1 b, In1 e, In2 b2, In2 e2)
{
if (b2 != e2) {
while (b != e) {
if (*b == *b2) {
In1 bc = b;
In2 b2c = b2;
while (bc != e && b2c != e2 && *bc == *b2c) {
++bc;
++b2c;
}
if (b2c == e2)
return b;
}
++b;
}
}
return e;
}
Run Code Online (Sandbox Code Playgroud)
但是,看看std::search …