Hmm, I think I prefer using the iterator as a type instead of a container type.



template <typename OutputIterator>
OutputIterator Split (string chain, string link, OutputIterator out);

...