我正在尝试编写一个简单的“跳过迭代器”,其中包含要跳过的元素数量的模板参数:
template <typename T, typename Iter, int Skip>
class SkipIterator
{
public:
SkipIterator(Iter baseIter) :
baseIter_(baseIter)
{
}
void operator++()
{
baseIter_ += Skip;
}
T &operator*()
{
return *baseIter_;
}
private:
Iter baseIter_;
};
我希望能够推断出这样的基数Iter
和T
类型:
std::vector<double> dataFromSomewhere;
SkipIterator<3> skipper(dataFromSomewhere.begin())
但是编译器(VS2010)给出了“模板参数太少”的错误。
有没有办法做到这一点?