c++ - ¿Cómo entender la implementación del vector pop_back?
stl sgi (1)
Actualmente estoy pensando por qué STL implementa el vector pop_back de esta manera. ¿Por qué movemos el prólogo del puntero de acabado primero y luego usamos el puntero de acabado para desasignar el espacio del último elemento?
void pop_back() {
--_M_finish;
destroy(_M_finish);
}
Lo más probable es que
_M_finish
sea el puntero final, que apunta al elemento justo después del último elemento.
Después de que el puntero se haya movido un paso hacia atrás, señalará al último elemento actual que se va a eliminar.
Y después de que ese elemento se elimine,
_M_finish
continuará apuntando al mismo elemento que ahora es nuevamente el elemento justo después del último elemento.