1

1 つは begin() で、もう 1 つは end() である 2 つの反復子を取るテンプレート関数を定義したいと思います。これは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 に答える