我想编写一个模板函数,该函数将某个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] 删除。
我来说两句