std::vector, std::list and std::deque have std::back_inserter, and std::set has std::inserter.<
You can always go your own way and implement an iterator yourself. I haven't verified this code but it should work. Emphasis on "I haven't verified."
template
class push_insert_iterator:
public iterator
{
protected:
Container* container;
public:
typedef Container container_type;
explicit push_insert_iterator(Container& x) : container(&x) {}
push_insert_iterator& operator= (typename Container::const_reference value){
container->push(value); return *this; }
push_insert_iterator& operator* (){ return *this; }
push_insert_iterator& operator++ (){ return *this; }
push_insert_iterator operator++ (int){ return *this; }
};
I'd also add in the following function to help use it:
template
push_insert_iterator push_inserter(Container container){
return push_insert_iterator(container);
}