2010-03-02 9 views
7

Necesito hacer un seguimiento del elemento std :: set guardando el iterador devuelto por set.find().¿Por cuánto tiempo el iterador devuelto por std :: set.find() vive?

Mi pregunta es si la inserción y eliminación de otros elementos invalida el iterador obtenido? De una simple prueba que hice, puedo ver que no es así, pero me gustaría asegurarme de que esta característica sea por diseño.

Respuesta

11

Nunca invalida iteradores o indicadores/referencias a los elementos. Solo si elimina el elemento en sí, el iterador o el puntero/referencia dejan de ser válidos.

23.1.2/8:

Los miembros de inserción no afectará a la validez de los iteradores y las referencias al contenedor, y los miembros de borrado invalidará sólo iteradores y referencias a los elementos borrados.

+0

Gracias. ¡Eso fue rápido! – jackhab

Cuestiones relacionadas