La diferencia entre eliminar y eliminar elementos en un vector

Se puede eliminar elementos del vector erasecon remove, pero erasedespués de usar el vector mismosize() cambia en consecuencia, mientras usa removevectorEl 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! ! !

removePuede eliminar todos los elementos especificados. size()No habrá cambios después de la eliminación. removeEl 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 removedespués de usar el comando, agregue y use la parte eliminada , es decir .size()eraseiterend()mymap.erase(iter, mymap.end())

Supongo que te gusta

Origin blog.csdn.net/qq_39735236/article/details/120444831
Recomendado
Clasificación