En la programación que se enfrentan a diversas situaciones en las que estamos obligados a hacer uso de contenedores STL intermedios como el siguiente ejemplo representa:C++ STL: ¿Reconstrucción o reutilización del contenedor después de la limpieza?
while(true)
{
set <int> tempSet;
for (int i = 0; i < n; i ++)
{
if (m.size() == min && m.size() <= max)
{
tempSet.insert(i);
}
}
//Some condition testing code
}
O
set <int> tempSet;
while(true)
{
for (int i = 0; i < n; i ++)
{
if (m.size() == min && m.size() <= max)
{
tempSet.insert(i);
}
}
tempSet.clear();
//Some condition testing code
}
¿Qué método es mejor en términos de tiempo y espacio complejidad teniendo en cuenta el estado actual de los cumplidores de C++?
No creo que se puede asignar previamente el espacio en un conjunto. –
Sí, veo eso. Probablemente tendrías que hacer algo tonto con el asignador para obtener una preasignación decente. – EvilTeach
Ejecuté una prueba. el max_size es enorme. No es un problema en este caso. – EvilTeach