If you want to call the semantics of assign , assign a call - if you want to call the semantics of insert , insert the call. They are not interchangeable.
As for calling them to an empty vector, the only difference is that you do not need to specify an iterator to insert when you call assign . There may be a difference in performance, but this implementation is specific and almost certainly careless.
source share