Отличие между assign() и operator= при работе с векторами в C++ заключается в их назначении:
- assign() удаляет вектор и копирует указанные элементы в пустой вектор. learn.microsoft.com Во-первых, функция удаляет все существующие элементы в векторе, а затем либо вставляет указанный диапазон элементов из исходного вектора в вектор, либо вставляет копии нового указанного элемента значения в вектор. learn.microsoft.com
- operator= заменяет элементы вектора копией другого вектора. learn.microsoft.com cpp-lang.net
Кроме того, у этих функций разные типы возвращаемых значений: оператор возвращает вектор по ссылке, а assign — void. stackoverflow.com Также в assign можно передать пару итераторов (диапазон), а в operator= — нет. stackoverflow.com