Adaptors

Iterators can do more than just search through data, they can now insert values!

We'll cover the following

Iterator adaptors enable the use of iterators in insert mode or with streams. They need the header <iterator>.

Insert iterators

With the three insert iterators std::front_inserter, std::back_inserter and std::inserter you can insert an element into a container at the beginning, at the end, or an arbitrary position respectively. The memory for the elements will automatically be provided. The three map their functionality on the underlying methods of the container cont.

The table below gives you two pieces of information: Which methods of the containers are internally used and which iterators can be used depends on the container’s type.

Name Internally-used Method Container
std::front_inserter(val) cont.push_front(val) std::deque
std::list
std::back_inserter(val) cont.push_back(val) std::vector
std::deque
std::list
std::string
std::inserter(val, pos) cont.insert(pos, val) std::vector
std::deque
std::list
std::string
std::map
std::set

The three insert iterators

You can combine the algorithms in the STL with the three insert iterators.