Quiero borrar el contenido de algunos std::list
. El orden de eliminación de elementos es importante para mí. Según el resultado del siguiente programa de prueba, el orden es del primer al último elemento. ¿Se garantiza que sea así? No estaba claro para mí desde el estándar C++ 2003.¿Cuál es el orden de los elementos de limpieza de std :: list?
#include <list>
#include <iostream>
struct A
{
A(int i) : I(i) {}
~A() { std::cout << I << std::endl; }
int I;
};
int main()
{
std::list<A> l;
l.push_back(A(1));
l.push_back(A(2));
l.push_back(A(3));
std::cout << "clearing list" << std::endl;
l.clear();
}
Solo por curiosidad: ¿por qué la orden de eliminación es importante para usted? – nietaki
Si es tan importante para usted, puede usar borrar() para borrarlos uno después del otro manualmente. –
@GabrielSchreiber: ... o 'pop_front()'. – kennytm