![]() |
hamigaki::first_iterator —
pair
の反復子を基にfirst
のみを反復する
template<typename Iterator> class first_iterator { public: // types typedef /* see below */ value_type; typedef /* see below */ reference; typedef /* see below */ pointer; typedef implementation defined difference_type; typedef typename std::iterator_traits<Iterator>::iterator_category iterator_category; // construct/copy/destruct first_iterator(); first_iterator(const Iterator&); // operators reference operator*() const; first_iterator<Iterator>& operator++(); // queries const Iterator& base() const; private: Iterator current; }; // creation first_iterator<Iterator> make_first_iterator(Iterator);
value_type
、reference
、pointer
は、typename std::iterator_traits<Iterator>::reference
に応じて次のように決定される。
iterator_traits<Iterator>::reference
|
value_type
|
reference
|
pointer
|
---|---|---|---|
const T&
|
T::first_type
|
const T::first_type&
|
const T::first_type*
|
T&
|
T::first_type
|
T::first_type&
|
T::first_type*
|
const T
|
T::first_type
|
T::first_type
|
T::first_type*
|
T
|
T::first_type
|
T::first_type
|
T::first_type*
|
製作著作 © 2006, 2007 Takeshi Mouri |