1

我想定义一个模板函数,它需要两个迭代器,一个是 begin(),另一个是 end()。这如何在 C++ 中实现?

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

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

}

这是错的吗?

4

1 回答 1

2

标准库倾向于工作的方式(至少<algorithm>作为一个例子)是允许稍后发生类型解析。所以你会改为使用:

template <class InputIt, class T>
T func( InputIt begin, InputIt end )
{
    // ...
}
于 2016-12-06T01:00:34.817 回答