Эффективность - это одно. Другая причина, по которой pop_back()
не возвращает элемент, - это безопасность исключений. Если функция pop()
вернула значение и исключение вызывается конструктором копирования, вы не сможете гарантировать, что контейнер находится в том же состоянии, что и до вызова pop()
.
Вы можете найти больше информации в книгах Herb Sutters об исключениях. Я думаю, что эта тема рассматривается здесь здесь . Но я не уверен.