Red de conocimiento informático - Problemas con los teléfonos móviles - Código fuente vectorial 6

Código fuente vectorial 6

No hay redistribución. Pero los siguientes elementos avanzan, por lo que el iterador después del elemento eliminado dejará de ser válido. Por ejemplo, el siguiente código fallará en el modo de depuración y funcionará bien en el modo de lanzamiento; puede ver que la dirección de la matriz no ha cambiado.

#¿Incluir? lvector gt

#¿Contiene? ltiostream gt

int? principal(){

STD::vector lt; int gt? v{? 1,?2,?3,?4,?5,?6,?7?};

¿Coche? ¿pag? =?v.end()? -?2;

std::cout? ¿Eh? ampv[0]? ¿Eh? ¿"\t"? ¿Eh? *¿pag? ¿Eh? ¿"\t"? ¿Eh? amperio*p? ¿Eh? "\n";

v.erase(v.begin()? ?2);

std::cout? ¿Eh? ampv[0]? ¿Eh? ¿"\t"? ¿Eh? *¿pag? ¿Eh? ¿"\t"? ¿Eh? amperio*p? ¿Eh? "\n";

¿Volver? 0;

}v.swap(vector ltT gt㈤); Copie V a un nuevo vector (la capacidad de este vector es exactamente la misma que el tamaño de V) y luego cámbielo con V, porque Esta es una variable local, por lo que la memoria obtenida de V se liberará al final de esta oración. Al mismo tiempo, después del intercambio, la capacidad y el tamaño de V son los mismos.

Se recomienda echar un vistazo al código fuente o pasar por la depuración para ver el proceso de implementación específico.