Tôi đang cố gắng để hiểu làm thế nào back_inserter
công việc, và điều này là thực hiện nó mà tôi có từ SGI-STL:Back_inserter hoạt động như thế nào?
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;
}
};
Tôi hiểu hầu hết các vùng, ngoại trừ người cuối cùng ba nhà điều hành *, ++, ++ (int). Đoán của tôi cho sự tồn tại của họ là bởi vì họ cần phải hỗ trợ các hoạt động khi được đặt bên trong thuật toán STL. Ngoài ra, tôi không biết chúng được sử dụng để làm gì? Bất cứ ai có thể giúp tôi làm rõ điều này?
Cảm ơn,
Chan
cảm ơn tuyệt vời;). Câu trả lời của bạn rất nhanh^^ – Chan