Comment obtenir le premier élément d'un set std ::

Je vous tous,

J'ai trouvé un bug étrange dans mon logiciel.

À l'intérieur d'une boucle while, où j'ai supprimer des éléments à partir d'un std::set, je veux toujours prendre le premier élément jusqu'à ce que le récipient est vide:

std::set< int*> nodes;
//Fill nodes 
for (int i=0; i<10;i++)
   nodes.insert(new int);
//
while (!nodes.empty())
{
int* pivot  = (*nodes.begin());
//do some operation with pivot erasing some elements from nodes
}

J'ai trouvé que la mise en œuvre du premier élément de cette façon fonctionne avec gcc mais pas avec MSVC, il se bloque lorsque j'essaie de déréférencer le (*nodes.begin()) itérateur.

Ne les deux la mise en œuvre de std::set se comporter différemment?

Je voudrais avoir une structure de données avec pas de différences de mise en œuvre, est-il possible?

Probablement que je doit changer de structure de données pour ce genre d'opérations

source d'informationauteur linello