Supposons que j'ai un hash_map et un code commeQu'est-ce qu'un équivalent sécurisé d'effacement de STL non-nul?
// i is an iterator
i = hash_map.erase(i)
Mais STL de GCC ne retourne pas iterator en effacement, mais un vide. Il est maintenant un code comme
hash_map.erase(i++)
sécurité (à savoir ne pas invalide iterator ou tout autre fait des choses inattendues ou désagréables)? S'il vous plaît noter que ceci est un hash_map.
Pouvez-vous indiquer où vous avez lu cela? Cela est vrai pour les conteneurs associatifs tels que définis dans l'ISO C++, mais je ne lis jamais rien de tel dans la documentation SGI. – PierreBdR
C'est sur cette page liée à dans mon message. Je suppose, pour ce site, qu'à moins d'indication contraire, les opérations ne provoquent pas l'invalidation. Voir http://www.sgi.com/tech/stl/Vector.html (par exemple) où tous les cas d'invalidation sont mentionnés. –
(J'ai choisi le vecteur spécifiquement parce que c'est un type de données qui a (apparemment) plus de cas d'invalidation que n'importe quel autre.) –