std::insert_iterator and iterator invalidation
问题 I tried writing a generic, in place, intersperse function. The function should intersperse a given element into a sequence of elements. #include <vector> #include <list> #include <algorithm> #include <iostream> template<typename ForwardIterator, typename InserterFunc> void intersperse(ForwardIterator begin, ForwardIterator end, InserterFunc ins, // we cannot use rvalue references here, // maybe taking by value and letting users feed in std::ref would be smarter const ForwardIterator::value