This is NOT a duplicate of How to clone an iterator?
Please do not blindly close this question, all the answers given in so-called
You can't duplicate an iterator without destroying it. The contract for iterator
is that it can only be traversed once.
The question you linked to shows how to get two copies in exchange for the one you've destroyed. You cannot keep using the original, but you can now run the two new copies forward independently.