Bonjour,
voilà, j'ai une map, dont les clés sont des string et les éléments sont des petites structures. A un moment donné dans mon programme, je dois désallouer cette map. Or, à ce moment, elle a une taille de l'ordre de 500Mo. Donc la libération prends un certain temps. Du coup, j'aimerais faire un système de progress bar, pour que l'utilisateur ne pense pas que l'appli est plantée.
Alors j'avais pensé faire une boucle qui détruit élément par élément, avec un compteur. Quelque chose comme ça:
Mais ça ne marche pas, le erase rends it inutilisable et du coup le ++it suivant envoie mon iterateur dans la stratosphère.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int count = 0; for ( MaMap::iterator it = ma_map.begin(); it != ma_map.end(); ++it ) { ma_map.erase( it ); Step( count ++ ); // gère la barre de progression }
Auriez-vous quelques idées?
Partager