相关疑难解决方法(0)

为什么我需要Forward Iterator来实现我自定义的std :: search

我正在研究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 …

c++ iterator

3
推荐指数
1
解决办法
694
查看次数

标签 统计

c++ ×1

iterator ×1