返回给定迭代器作为参数的适当类型的STL容器

通用汽车协会

我想编写一个模板函数,该函数将某个STL容器的两个迭代器First和Last作为其参数,并返回一个STL容器,其中包含两个满足某些条件的迭代器之间的那些元素(的副本)。换句话说,我想要这样的东西:

template <typename Type>
Type Foo(Type::iterator First, Type::iterator Last)
{
    Type Result;
    for (Type::iterator i = First; i != Last; i++)
    {
        if (...)
        {
           Result.push_back(*i);
        }
    }
    return Result;
}

但是,由于编译器说“Type::iterator不是类型”(我用来称呼),因此无法编译std::vector<double>

我是否只是语法错误?还是我完全以错误的方式进行此操作?

谢谢你。

来自莫斯科的弗拉德

尝试使用

typename Type::iterator

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章