Respostas:
Sim. Esta versão do assign é definida como
template<class InputIterator> constexpr basic_string& assign(InputIterator first, InputIterator last);Restrições : InputIterator é um tipo que se qualifica como um iterador de entrada.
Efeitos : Equivalente a: return assign (basic_string (first, last, get_allocator ()));
que mostra um temporário calculado antes que as alterações ocorram.