如何定义在c ++中使用两个迭代器的模板函数?

时间:2016-12-06 00:54:05

标签: c++ function templates iterator template-function

我想定义一个带有两个迭代器的模板函数,一个是begin(),另一个是end()。如何在c ++中实现?

到目前为止,我可以想到以下几点:

template <class Iterator>
typename std::iterator_traits<Iterator>::value_type func( Iterator begin, Iterator end ) {

}

这是错的吗?

1 个答案:

答案 0 :(得分:1)

标准库的工作方式(至少以<algorithm>为例)是允许稍后进行类型解析。所以你宁愿使用:

template <class InputIt, class T>
T func( InputIt begin, InputIt end )
{
    // ...
}