Se puede eliminar elementos del vector erase
con remove
, pero erase
después de usar el vector mismosize() cambia en consecuencia, mientras usa remove
vectorEl tamaño () en sí no ha cambiado, solo ha cambiado el puntero del iterador.! ! ! Por lo tanto, no se recomienda usar size() para atravesar elementos después de su uso remove
, ¡ya que es propenso a errores! ! !
remove
Puede eliminar todos los elementos especificados. size()
No habrá cambios después de la eliminación. remove
El comando devuelve el iterador, apuntando al final actualizado (registrado como iterend()
), pero no hay ningún cambio para el vector en sí . Esta es también size()
la razón por la que hay sin cambios size()
Si no hay cambios, no podemos confiar en size()
el recorrido, ya que conocemos el iterador final después de eliminar el elemento, por lo que podemos utilizar el recorrido del iterador, es decir for(auto it = mymap.begin(); it != iter; it++)
.
Si necesita realizar los cambios correspondientes remove
después de usar el comando, agregue y use la parte eliminada , es decir .size()
erase
iter
end()
mymap.erase(iter, mymap.end())