Преимущества использования функции std::erase() вместо pop_back() при удалении элементов из вектора заключаются в том, что она позволяет удалять элементы из середины или начала контейнера. 1
Например, с помощью erase() можно удалить элемент, на который указывает итератор, или элементы из диапазона, на начало и конец которого указывают итераторы. 1 В то время как pop_back() удаляет последний элемент вектора. 1
Также при использовании erase() элементы до удалённых не затрагиваются, поэтому безопасно обращаться или изменять их. 4
Однако у этих функций разное время исполнения операции. 2 pop_back() удаляет элемент с конца вектора, и его сложность — O(1). 2 А erase() удаляет элемент из начала вектора, и все оставшиеся элементы нужно сдвинуть на один к началу, поэтому сложность операции — O(N). 2