Я пытаюсь понять, как back_inserter
работает, и это его реализация, которую я имею от SGI-STL:
template<class C>
class back_insert_iterator {
protected:
C* container;
public:
typedef C container_type;
typedef output_iterator_tag iterator_category;
typedef void value_type;
typedef void difference_type;
typedef void pointer;
typedef void reference;
explicit back_insert_iterator( C& __x ) :container( &__x ) {
}
back_insert_iterator<C>& operator=( const typename C::value_type& val ) {
container->push_back( val );
return *this;
}
back_insert_iterator<C>& operator*() {
return *this;
}
back_insert_iterator<C>& operator++() {
return *this;
}
back_insert_iterator<C>& operator++( int ) {
return *this;
}
};
Я понял большинство частей, кроме последних трех операторов *, ++, ++ (int).Я предполагаю, что они существуют, потому что им нужно поддерживать операции, когда они находятся внутри алгоритма STL.Кроме этого, я не знаю, для чего они используются?Может ли кто-нибудь помочь мне уточнить это?
Спасибо,
Чан