Todos ustedes,Cómo obtener el primer elemento de un estándar :: conjunto
Encontré un error extraño en mi software.
Dentro de un bucle while, donde se quita elementos de un std :: set, quiero siempre dar el primer elemento hasta que el contenedor está vacío:
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
}
He encontrado que la aplicación del primer elemento de esta manera las obras con gcc pero no con MSVC, se bloquea cuando intento desreferenciar el iterador (*nodes.begin())
.
¿Las dos implementaciones de std :: set se comportan de manera diferente?
Me gustaría tener una estructura de datos sin diferencias de implementación, ¿es posible?
Probablemente hay que cambiar la estructura de datos para este tipo de operaciones
¿Qué ocurre después de su desreferenciar? – Nick
¿Qué es "hacer alguna operación con el pivote borrando algunos elementos de los nodos?" –
solo desreferencia como este * (nodes.begin()) – v01d