我想定义一个带有两个迭代器的模板函数,一个是begin(),另一个是end()。如何在c ++中实现?
到目前为止,我可以想到以下几点:
template <class Iterator>
typename std::iterator_traits<Iterator>::value_type func( Iterator begin, Iterator end ) {
}
这是错的吗?
答案 0 :(得分:1)
标准库的工作方式(至少以<algorithm>
为例)是允许稍后进行类型解析。所以你宁愿使用:
template <class InputIt, class T>
T func( InputIt begin, InputIt end )
{
// ...
}