[insert.iter.general]

# 24 Iterators library [[iterators]](./#iterators)

## 24.5 Iterator adaptors [[predef.iterators]](predef.iterators#insert.iter.general)

### 24.5.2 Insert iterators [[insert.iterators]](insert.iterators#insert.iter.general)

#### 24.5.2.4 Class template insert_iterator [[insert.iterator]](insert.iterator#insert.iter.general)

#### 24.5.2.4.1 General [insert.iter.general]

[ð](#lib:insert_iterator)

namespace std {template<class Container>class insert_iterator {protected: Container* container;
 ranges::iterator_t<Container> iter; public:using iterator_category = output_iterator_tag; using value_type = void; using difference_type = ptrdiff_t; using pointer = void; using reference = void; using container_type = Container; constexpr insert_iterator(Container& x, ranges::iterator_t<Container> i); constexpr insert_iterator& operator=(const typename Container::value_type& value); constexpr insert_iterator& operator=(typename Container::value_type&& value); constexpr insert_iterator& operator*(); constexpr insert_iterator& operator++(); constexpr insert_iterator& operator++(int); };}
