
It doesn't seem that such an iterator would be used nearly often enough to warrant inclusion into boost. People generally either need a std::back_inserter or simply the container's forward iterator, not a combination of the two. Perhaps if you could provide several use cases, this iterator would seem more valuable and not an iterator which is used only in your specific project.
I assumed that needing to modify a value found earlier in a stream based on a value found later in a stream would not be such an unusual thing. Perhaps I was wrong. Is there a better way to approach this problem? I would prefer not to have to flag the values as I encounter them and then iterate over the entire container again to find them. My use case specifically is for an assembler, where I want to output a sequence of byte codes, but remember certain locations which are jump commands so that I can fill in their jump addresses as I encounter their corresponding labels.